r - 将一个函数应用于两个列表?

标签 r parameter-passing apply mapply

要查找两个矩阵 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$1listA$2,listB$2 ...对于列表中的其他数据帧,依此类推。最后,在比较 1 的情况下(listA$1listB$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)

关于r - 将一个函数应用于两个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19002378/

相关文章:

javascript - onclick函数的参数

controller - 将参数传递给所有 View

scala - 在 Scala Play 应用程序中避免此 java.lang.ClassCastException 错误的正确应用和取消应用方法是什么?

r - 在 Shiny App 中选择选项卡时打开 'modalDialog' 对话框

r - mfrow & mfcol 在 par() 中代表什么?

r - 按 data.table 中的列表列子集快速分组

R 使用 system() 返回错误

python - 如何使用 Python 脚本为批处理文件提供输入?

python - pandas apply 函数返回可变形状输出的 ValueError

Python:逐行替换数据帧值