Arrays 是否有任何函数可以计算R中数组中包含的一组矩阵之间的相关性?

Arrays 是否有任何函数可以计算R中数组中包含的一组矩阵之间的相关性?,arrays,r,correlation,Arrays,R,Correlation,我有一个包含20个矩阵的列表。我想计算所有矩阵之间的皮尔逊相关性。但我找不到任何可能的代码或函数?你能给我一些建议吗 something like: a=matrix(1:8100, ncol = 90) b=matrix(8100:16199, ncol = 90) c=matrix(sample(16200:24299),ncol = 90) z=list(a,b,c) 我发现: 试试看: library(lineup) corbetw2mat(z[a], z[b], what = "al

我有一个包含20个矩阵的列表。我想计算所有矩阵之间的皮尔逊相关性。但我找不到任何可能的代码或函数?你能给我一些建议吗

something like:
a=matrix(1:8100, ncol = 90)
b=matrix(8100:16199, ncol = 90)
c=matrix(sample(16200:24299),ncol = 90)
z=list(a,b,c)
我发现: 试试看:

library(lineup)
corbetw2mat(z[a], z[b], what = "all")
我有以下错误:

Error in corbetw2mat(z[a], z[b], what = "all") : 
  (list) object cannot be coerced to type 'double'
我想要一个这样的结果列表:

a & b 
correlations
a & c
correlations
b & c
correlations

谢谢

我将创建一个较小的数据集来说明下面的解决方案。
要获得成对组合,最好的选择是使用
combn
计算组合矩阵,然后在其中循环,在这种情况下是
lappy
循环

set.seed(1234)    # Make the results reproducible

a <- matrix(1:9, ncol = 3)
b <- matrix(rnorm(9), ncol = 3)
c <- matrix(sample(1:9), ncol = 3)
sample_list <- list(a, b, c)

cmb <- combn(3, 2)
res <- lapply(seq.int(ncol(cmb)), function(i) {
  cor(sample_list[[ cmb[1, i] ]], sample_list[[ cmb[2, i] ]])
})
set.seed(1234)#使结果重现

欢迎来到stackoverflow!您的问题不清楚,请根据阅读和编辑您的问题,以便其他用户可以帮助您。另外,添加期望的输出。您还没有真正解释您期望的答案是什么。最好是你发布一个代码块,创建一个较小的数字,你可以手工给出一个“正确”的答案。非常感谢。很抱歉问这个问题,我不理解cmb部分;对于包含20个矩阵的真实数据,我应该使用什么组合,更重要的是为什么使用?@Bagherfanian从帮助页面
?combn
:一次生成x和m元素的所有组合。因此,如果你有20个矩阵,你会得到一对(1,2),然后是(1,3),等等,直到(1,20),然后是(2,3)等等。用
cmb@bagherfanian替换答案中的调用当你提问时该怎么办。