R 列表对象中多个数据帧之间的相关性

R 列表对象中多个数据帧之间的相关性,r,R,我有4个数据帧,我决定放在一个列表对象中 我想计算每个数据帧和所有其他数据帧之间的相关性。更具体地说,我想计算数据帧_1和其他两个数据帧之间的相关性。dataframe_2和其他3个数据帧之间的操作相同,以此类推,直到所有组合完成 脚本示例: df1=matrix(data = rnorm(25), nrow = 5, ncol = 5); colnames(df1)=c("a", "b","c", "d", "e") df2=matrix(data = rnorm(25), nrow = 5,

我有4个数据帧,我决定放在一个列表对象中

我想计算每个数据帧和所有其他数据帧之间的相关性。更具体地说,我想计算
数据帧_1
和其他两个数据帧之间的相关性。
dataframe_2
和其他3个数据帧之间的操作相同,以此类推,直到所有组合完成

脚本示例:

df1=matrix(data = rnorm(25), nrow = 5, ncol = 5); colnames(df1)=c("a", "b","c", "d", "e")
df2=matrix(data = rnorm(25), nrow = 5, ncol = 5); colnames(df2)=c("a", "b","c", "d", "e")
df3=matrix(data = rnorm(25), nrow = 5, ncol = 5); colnames(df3)=c("a", "b","c", "d", "e")
df4=matrix(data = rnorm(25), nrow = 5, ncol = 5); colnames(df4)=c("a", "b","c", "d", "e")
list_tab=list(df1, df2, df3, df4)
我尝试使用
lappy(list_选项卡,function(x)cor(x))
但没有得到我期望的结果

我想获得包含以下对象的列表:

  • cor(df1,df2)
  • cor(df1,df3)
  • cor(df1,df4)
  • cor(df2,df3)
  • cor(df2,df4)
  • cor(df3,df4)
一个接一个地做这件事很无聊,所以我正在寻找一种简单的方法


谢谢你的回答

下面的一条直线计算
列表选项卡
中矩阵之间的所有成对相关性,包括每个矩阵与其自身的相关性

lapply(list_tab, function(DF) Map(cor, list_tab, list(DF)))

与你的问题没有直接关系,但是在这种结构中使用数组不是更好吗?是的,我可以,但我不认为它会更好。因为我被限制添加补充dimnames参数(在函数数组中),而对于list,没有其他参数可添加。它可以工作,即使它多次给出相同的相关性,谢谢@AchilleNyouma成对相关性相等,但相关矩阵不相等。我刚刚比较了all和all,它总是返回
FALSE
。我还谈到了成对相关性,它最终会出现两次。但我可以很容易地做到这一点。