[英]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.