【发布时间】:2011-12-01 15:15:06
【问题描述】:
我想创建一个列,让我知道我的因变量与我感兴趣的所有解释变量的相关性(所有这些列以及更多列都存储在 data.frame d 中)。通过做 cor(d) 我可以得到所有的相关性,通过做 cor(d$Var1, d$Var2) 我可以得到一个数字,但我想弄清楚如何从返回的矩阵中只获取 Var1 列cor(d),我可以选择我想要包含的解释变量。
【问题讨论】:
标签: r
我想创建一个列,让我知道我的因变量与我感兴趣的所有解释变量的相关性(所有这些列以及更多列都存储在 data.frame d 中)。通过做 cor(d) 我可以得到所有的相关性,通过做 cor(d$Var1, d$Var2) 我可以得到一个数字,但我想弄清楚如何从返回的矩阵中只获取 Var1 列cor(d),我可以选择我想要包含的解释变量。
【问题讨论】:
标签: r
M <- round(cor(College[,-1]),2)
library('corrplot') #package corrplot
如果我们想要图像而不是直接数字,我们也可以使用圆形、方形、日食来代替数字
corrplot(M, method = "number") #plot matrix
【讨论】:
@DavidR 是正确的,尽管 R 也支持 X 的列和 Y 的列之间的相关性:
cor(X, Y)
更多信息请参见?cor。
【讨论】:
cor 函数实际上也可以做到这一点。 假设我们有:
d=data.frame(dependentVar = c(1,2,3),var1=c(-1,-2,-3),var2=c(9,0,5),junk=c(-2,-3,5))
这样就可以解决问题了:
cor(d[,"dependentVar"], d[,c("var1","var2")])
var1 var2
[1,] -1 -0.4435328
效率较低(我猜),但您也可以这样做:
cor(d)["dependentVar", c("var1","var2")]
它计算完整的相关矩阵,然后提取出你想要的子集。
【讨论】: