【问题标题】:combine lists in R without knowing beforehand the number of lists to combine在事先不知道要组合的列表数量的情况下在 R 中组合列表
【发布时间】:2013-10-08 21:46:51
【问题描述】:

如果我从包含列表 N 和 M 的列表 A 开始,其中包含相同数量的元素:

A = list( N=list( a=c(1,1), b=c(2,2)),
          M=list( a=c(1,1), b=c(2,2)) )

我将执行以下操作将列表 N 和 M 中的每个元素组合到新列表中

B = mapply( FUN=list, A[[1]], A[[2]], SIMPLIFY=FALSE )

得到

>B
$a
$a[[1]]
[1] 1 1

$a[[2]]
[1] 1 1


$b
$b[[1]]
[1] 2 2

$b[[2]]
[1] 2 2

如果我事先不知道列表 A 将拥有的列表数量,我该如何做与上述相同的事情?

【问题讨论】:

    标签: r list


    【解决方案1】:

    您的问题可能有更好的解决方案,但如果您真的想“做同样的事情,但不知道 A 的大小”,您可以执行以下操作:

    do.call(function(...) mapply(..., FUN = list, SIMPLIFY = FALSE), A)
    

    【讨论】:

    • @flodel,这可能值得作为答案发布
    【解决方案2】:

    尝试使用tapply:

     tapply(U, inds, list) 
    

    在哪里

     U    <- unlist(A, recursive=FALSE)
     inds <- rep(seq_along(A[[1]]), length(A))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-07
      • 2014-10-02
      • 2022-12-29
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多