将函数应用于两个列表?

Pau*_*aul 25 r parameter-passing apply mapply

为了找到两个矩阵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,]))
Run Code Online (Sandbox Code Playgroud)

现在,我应该如何将此函数应用于两个列表(每个包含大约50个数据帧)?

考虑列表A具有数据帧$ 1,$ 2,$ 3 ......等等,列表B具有相似数量的数据帧$ 1,$ 2,$ 3.因此,功能应适用于listA$1,listB$1listA$2,listB$2在列表中的其他dataframes ...等等.最后,我将在比较1(listA$1listB$1)和其他人的情况下有十个值.

这可以用"lapply"来完成吗?

sha*_*dow 37

你似乎在寻找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)
Run Code Online (Sandbox Code Playgroud)