为了找到两个矩阵X和Y的行方向相关性,输出应该具有X的第1行和Y的第1行的相关值,...因此总共有10个值(因为有10行) ):
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$1
和listA$2,listB$2
...等等,以便列表中的其他数据帧。最后,我将在比较1(listA$1
和listB$1
)以及其他人的情况下获得10个值。
可以使用“lapply”来完成吗?
答案 0 :(得分:33)
您似乎在寻找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)