Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中矩阵列中的循环关联_R_Matrix_Correlation - Fatal编程技术网

R中矩阵列中的循环关联

R中矩阵列中的循环关联,r,matrix,correlation,R,Matrix,Correlation,我有一个200x200的模拟模型矩阵,想计算某些列之间的相关性。以下是一些数据: var1 var2 var3 var4 [1,] 0.000000000 0.0000000000 0.00000000 0.000000000 [2,] 0.081707812 -0.4674752956 -0.09885623 0.311421458 [3,] 0.104660320 -0.5066112338 0.162155

我有一个200x200的模拟模型矩阵,想计算某些列之间的相关性。以下是一些数据:

     var1          var2        var3         var4   
[1,]  0.000000000  0.0000000000  0.00000000  0.000000000 
[2,]  0.081707812 -0.4674752956 -0.09885623  0.311421458 
[3,]  0.104660320 -0.5066112338  0.16215542  0.224543735  
[4,]  0.148780552 -0.2419104721 -0.01707375  0.122405936 
我试图找出var1和var2,var3和var4,var5和var6之间的相关性,依此类推。将相关性输出到一个100长度的向量将是惊人的

我将数据分割成100个200x2矩阵,命名为R1、R2等,并使用此代码

for(i in 1:100){
     cor[i] <- cor(get(paste0(R,i,))[,1], get(paste0(R,i,))[,2])
}
将数据存储在一个矩阵中显然比存储在一百个矩阵中更可取,但我在R方面是一个绝对的新手,在搜索之后不知道如何做到这一点


感谢您的帮助。

以下是您的示例的一种方法:

x <- matrix(c(0.000000000, 0.0000000000, 0.00000000, 0.000000000, 
              0.081707812, -0.4674752956, -0.09885623, 0.311421458,
              0.104660320, -0.5066112338,  0.16215542,  0.224543735,  
              0.148780552, -0.2419104721, -0.01707375,  0.122405936), 
              4, 4, byrow = TRUE)

out <- cor(x)
diag(out[c(1,3), c(2,4)])
#[1] -0.5784471 -0.0925900
x
x <- matrix(c(0.000000000, 0.0000000000, 0.00000000, 0.000000000, 
              0.081707812, -0.4674752956, -0.09885623, 0.311421458,
              0.104660320, -0.5066112338,  0.16215542,  0.224543735,  
              0.148780552, -0.2419104721, -0.01707375,  0.122405936), 
              4, 4, byrow = TRUE)

out <- cor(x)
diag(out[c(1,3), c(2,4)])
#[1] -0.5784471 -0.0925900
out <- cor(x)
diag(out[seq(1,200,2), seq(2,200,2)])