考虑以下的调查数据删除内部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"
而V10
是一个序变量,其中1 = "Good"
,2 = "Not good"
,3 = "Don't know"
和4 = "Don't want to answer"
。
我对使用cor()
这些变量计算简单相关矩阵感兴趣。但是,我只想在实际上意味着某些事情的值之间进行计算。即1,2,3
为V1:V9
和1,2
为V10
。
换句话说,我希望的情况下,明智的任何值> 2
的cor()
函数中删除V1:V9
任何价值> 3
和同为V10
。
这与使用参数类似吗?
我设法解决这个问题的唯一方法是将这些值变为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。当然,有更多的方法来计算序数变量之间的相关性。
相关文章:[here](http://stats.stackexchange.com/questions/108007)和[here](http://datascience.stackexchange.com/questions/893) – zx8754