に以下の調査データを検討:V10
は1 = "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:V9
は1 = "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。もちろん、序数変数間の相関を計算するより適切な方法があります。
関連記事:[こちら](http://stats.stackexchange.com/questions/108007)[こちら](http://datascience.stackexchange.com/questions/893) – zx8754