2017-04-06 10 views
1

に以下の調査データを検討:V101 = "Good"2 = "Not good"3 = "Don't know"順序変数であるケースワイズ(COR内部値の削除)R

data <- replicate(10 ,sample(c(1,2,3,4), 1000, replace = TRUE)) %>% 
    as.data.frame() 

V1:V91 = "Good"2 = "Okey"3 = "Not Good"変数と4 = "Don't know"ありますおよび4 = "Don't want to answer"

これらの変数に対してcor()を使用して単純な相関行列を計算することに興味があります。しかし、私は実際に何かを意味する値の間でそれを計算したいだけです。すなわち、V1:V9の場合は1,2,3であり、V10の場合は1,2です。言い換えれば

は、私はケースが賢明cor()関数内V10のために任意の値> 2ためV1:V9のための任意の値> 3と同じで削除します。

これはuse引数に似ていますか?

これを解決するための唯一の方法は、これらの値をNAに変更することです。

library("dplyr") 
data_test <- data_test %>% 
     mutate_each(funs(ifelse(. > 3, NA, .)), -V10) %>% 
     mutate(ifelse(V10 > 2, NA, V10)) 

cor(data_test, use = "complete.obs") 

しかし、必ずしもデータを変更するよりも良い方法はありません。

PS。もちろん、序数変数間の相関を計算するより適切な方法があります。

+1

関連記事:[こちら](http://stats.stackexchange.com/questions/108007)[こちら](http://datascience.stackexchange.com/questions/893) – zx8754

答えて

0

この質問に対する回答は、私が思ったよりも簡単でした。

@ zx8754は、カテゴリ変数の相関方法を選択する際には注意が必要です。

とにかく、あなただけのあなたはまだNAに4を変異させる必要がある、しかしcor()

use = "pairwise.complete.obs"を変更します。

関連する問題