【问题标题】:Applying a function to two lists?将函数应用于两个列表?
【发布时间】:2013-09-30 21:28:56
【问题描述】:

要找到两个矩阵 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”来完成吗?

【问题讨论】:

    标签: r parameter-passing apply mapply


    【解决方案1】:

    您似乎在寻找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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 2021-06-03
      相关资源
      最近更新 更多