繁体   English   中英

计算来自不同数据帧的两列之间的R的相关性

[英]compute correlation in R between two columns from different data frame

我想计算两个不同数据帧中两列的相关性。

例如:

数据帧1:

identifier  description Score
qzqzgz  desc1   0.12
zzqzgq  desc2   8.98
zzqzgg  desc3   0.55
zzqzgc  desc4   3.66
zzqzgz  desc5   1.22
qqzgzz  desc6   -30.23
zqzgzq  desc6   7.88
zqzgzg  desc6   6.45
zqzgzc  desc6   2.33
zqzgzz  desc6   1.02

dataframe2:

    identifier  description S1  S2  S3  S4  S5     S6
    qzqzgz  desc1   9   3   4   6   7   4
    zzqzgq  desc2   5   3   6   2   3   6
    zzqzgg  desc3   9   9   12  12  14  13
    zzqzgc  desc4   6   4   8   6   6   6
    zzqzgz  desc5   10  5   5   5   5   11
    qqzgzz  desc6   11  12  17  12  11  17
    zqzgzq  desc6   8   2   1   4   4   3
    zqzgzg  desc6   2   4   9   9   5   10
    zqzgzc  desc6   7   5   8   5   7   3
    zqzgzz  desc6   11  5   7   9   9   12

我想计算:dataframe1(Score)的第3列和dataframe2(S1)的第3列之间的相关性。 dataframe1(Score)的第3列和dataframe2的第3列(S2)。 dataframe1(Score)的第3列和dataframe2的第3列(S3)。 dataframe1(Score)的第3列和dataframe2的第3列(S4)。 等等。

这是我到目前为止所写的:

    for (i in 3:8)
       {
         cortop[i] <- cor(dataframe1$Score_top,dataframe2$i)
          }

我是R的新手。请帮忙写一个循环。

你这里不需要循环:

cor(dataframe1$Score, dataframe2[-c(1:2)])

#             S1         S2         S3        S4       S5         S6
# [1,] -0.555369 -0.8556331 -0.7682521 -0.629983 -0.57097 -0.6790326

顺便说一句:你的代码不起作用,因为你不能将$与变量一起使用。 因此,您必须将dataframe2$i替换dataframe2$i dataframe2[[i]]以访问第i列。


更新:

由于dataframe2中的值是因子,因此在使用cor之前必须将它们转换为数值:

cor(dataframe1$Score, "storage.mode<-"(as.matrix(dataframe2[-c(1:2)]), "numeric"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM