在r

时间:2015-05-31 12:49:18

标签: r correlation

我有一个包含11列的数据框,其中9列是数字。我试图找出8列与剩余列的相关性,即8个变量与1个变量的相关性,它应生成一个相关值,而不是在矩阵中生成9个不同的值。

有可能吗?或者我是否需要在计算个体相关性后计算平均相关性?例如,我试图找到X,Y,Z与A的相关性。使用上述方法我得到一个矩阵,它给出了X的关联的单独得分, Y,Z与A,其中我需要一个分数,考虑到所有三个X,Y& ž。

下面给出了模拟df用于说明目的

          x            y           z   a
1   1.72480753  0.007053053  0.32435032  10
2   0.97227885 -0.844118498 -0.75534119  20
3  -0.53844294 -0.036178789  0.89396765  30
4   1.34695331  0.870119744  0.99400826  40
5   0.02336335  0.514481676  0.95894286  50
6  -0.15239307  0.386061290  0.73541287  60
7  -0.29878116  1.615012645 -0.04416341  70
8  -1.10907706 -1.581093487 -0.93293702  80
9   2.73021114 -0.130141775  1.85304372  90
10  0.22417487  1.170900385 -0.68312974 100

我可以将每行和变量的相关性与a相关联,但我想要的是x,y,z与

的相关性
corr.test(df[,1:3],df[,4])

对于这个问题,我将不胜感激。

此致

2 个答案:

答案 0 :(得分:2)

Pearson Correlation定义为将值的一个序列(或向量)与另一个序列(或向量)相关联的数字(查找)。据我所知,对于一组向量到另一个向量没有大致相同的定义,但你可以做一些事情,比如取平均向量(3个向量)并将a与之关联起来。

对我而言,至少具有比3个相关值的平均值更直接的几何意义。

答案 1 :(得分:1)

如果您想计算每个变量与a的相关性,您可以执行以下操作:

head(cor(df)[,"a"], -1)
#           x           y           z 
# -0.14301569  0.19188340 -0.06561505 

你说你想通过平均来组合这些值,所以我想你可以采取那个意思:

mean(head(cor(df)[,"a"], -1))
# [1] -0.005582445