【发布时间】:2015-06-01 12:28:37
【问题描述】:
我有以下数据示例:
A<-rnorm(100)
B<-rnorm(100)
C<-rnorm(100)
v1<-as.numeric(c(1:100))
v2<-as.numeric(c(2:101))
v3<-as.numeric(c(3:102))
v2[50]<-NA
v3[60]<-NA
v3[61]<-NA
df<-data.frame(A,B,C,v1,v2,v3)
如您所见,df 在第 5 列中有 1 个 NA,在第 6 列中有 2 个 NA。 现在我想一方面制作 col1 和 3 的相关矩阵,另一方面制作 col2,4,5,6 的相关矩阵。在 R 中使用 cor 函数:
cor(df[ , c(1,3)], df[ , c(2,4,5,6)], use="complete.obs")
# B v1 v2 v3
# A -0.007565203 -0.2985090 -0.2985090 -0.2985090
# C 0.032485874 0.1043763 0.1043763 0.1043763
这行得通。然而,我想同时拥有估计值和 p.value,因此我切换到 cor.test。
cor.test(df[ ,c(1,3)], df[ , c(2,4,5,6)], na.action = "na.exclude")$estimate
这不起作用,因为 'x' 和 'y' 必须具有相同的长度。 无论数据中是否存在 NA,此错误实际上都会发生。似乎 cor.test 不理解(与 cor 不同)关联特定列的请求。这个问题有解决办法吗?
【问题讨论】:
-
cor.test说x和y应该是向量。另一种选择是来自psych包的corr.test -
谢谢,这看起来很棒! Benjamini Hochberg 似乎还有可能在里面,很好!
标签: r correlation