为了找到两个矩阵 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
and listA$2,listB$2
...列表中的其他数据框依此类推。最后,在比较 1 的情况下我将得到十个值(listA$1
and listB$1
)以及其他人。
这可以使用“lapply”来完成吗?
您似乎正在寻找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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)