如何计算R中的相关性

san*_*san 3 r correlation

我想计算RI中数据集x子集的colunms之间的相关系数有40个模型的行,每个200个模拟总计8000行我想计算每个模拟的colums之间的corr系数(40行)

cor(x[c(3,5)])
我需要的所有8000行计算,cor(x[c(3,5)])但仅在X$nsimul=1等等时计算

你能帮我解决这个问题

Pra*_*ani 6

我不确定你到底在做什么,x[c(3,5)]但看起来你想要做如下的事情:你有一个X像这样的数据框:

set.seed(123)
X <- data.frame(nsimul = rep(1:2, each=5), a = sample(1:10), b = sample(1:10))

> X
   nsimul  a  b
1       1  1  6
2       1  8  2
3       1  9  1
4       1 10  4
5       1  3  9
6       2  4  8
7       2  6  5
8       2  7  7
9       2  2 10
10      2  5  3
Run Code Online (Sandbox Code Playgroud)

并且您希望按nsimul列拆分此数据框,并计算每个组之间a和之间的相关性b.这是一个非常适合的经典split-apply-combine问题plyr:

require(plyr)
> ddply(X, .(nsimul), summarize, cor_a_b = cor(a,b))
  nsimul    cor_a_b
1      1 -0.7549232
2      2 -0.5964848
Run Code Online (Sandbox Code Playgroud)