将函数应用于两个列表?

34

为了找到矩阵X和Y的行相关性,输出应该对于X的第1行和Y的第1行有一个相关值, ...,因此总共有十个值(因为有十行):

X <- matrix(rnorm(2000), nrow=10)
Y <- matrix(rnorm(2000), nrow=10)

sapply(1:10, function(row) cor(X[row,], Y[row,]))
现在,我应该如何将这个函数应用于两个列表(每个列表包含约50个数据帧)?
考虑列表A具有数据帧$1、$2、$3...等等,列表B也有相同数量的数据帧$1、$2、$3。因此,该函数应该被应用于listA$1,listB$1listA$2,listB$2......列表中其他数据框架也是如此。最后,在比较1的情况下(listA$1listB$1),将有十个值以及其他值。
这可以使用“lapply”完成吗?
1个回答

54

您似乎正在寻找mapply。这是一个示例:

listA <- list(matrix(rnorm(2000), nrow=10),
              matrix(rnorm(2000), nrow=10))
listB <- list(matrix(rnorm(2000), nrow=10),
              matrix(rnorm(2000), nrow=10))
mapply(function(X,Y) {
  sapply(1:10, function(row) cor(X[row,], Y[row,]))
  }, X=listA, Y=listB)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接