我有 2 个数据框,每个数据框有 5 列和 100 行。
id price1 price2 price3 price4 price5
1 11.22 25.33 66.47 53.76 77.42
2 33.56 33.77 44.77 34.55 57.42
...
我想获得相应行的相关性,基本上
for(i in 1:100){
cor(df1[i, 1:5], df2[i, 1:5])
}
但不使用 for 循环。我假设有某种方法可以使用 plyr
来做到这一点,但似乎无法做到正确。有什么建议吗?
最佳答案
根据您想要一个酷还是快速的解决方案,您可以使用其中之一
diag(cor(t(df1), t(df2)))
这很酷但很浪费(因为它实际上计算了您并不真正需要的所有行之间的相关性,因此它们将被丢弃)或
A <- as.matrix(df1)
B <- as.matrix(df2)
sapply(seq.int(dim(A)[1]), function(i) cor(A[i,], B[i,]))
它只做你想要的事情,但需要输入更多内容。
关于r - 两个数据帧之间的行相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9136116/