【问题标题】:Bind matrix in lists together将列表中的矩阵绑定在一起
【发布时间】:2015-06-01 14:15:37
【问题描述】:

我有一个列表,其中有几个子列表 - 在每个子列表中都有一个 martix

lis[[1]]
               V1         V2
386434 2999996820 0.03302860
386435 2999996860 0.03659760
386436 2999996950 0.02551180
386437 2999996960 0.00188527

lis[[2]]
2 249999983 0.00687375
3 250000122 0.02909420
4 250000225 0.00153139
5 250000301 0.26182100

矩阵的维度不同(列数相同)

我怎样才能不在一行或某处一次又一次地使用 rbind...只是将子列表中的所有表 rbind 到一个大表中?

结果我

               V1         V2
386434 2999996820 0.03302860
386435 2999996860 0.03659760
386436 2999996950 0.02551180
386437 2999996960 0.00188527
2 249999983 0.00687375
3 250000122 0.02909420
4 250000225 0.00153139
5 250000301 0.26182100

【问题讨论】:

    标签: r list matrix


    【解决方案1】:

    尝试以下方法:

    total = Reduce(rbind, lis)

    library("dplyr") total = bind_rows(lapply(lis, as.data.frame))

    【讨论】:

    • 很好,@Arun。它们必须是 data.frames。答案相应修改。
    【解决方案2】:

    对于任何列表,您可以使用列表元素调用任何函数,就好像它们是带有do.call 的函数的参数一样。因此:

    do.call(rbind, lis)
    

    应该这样做。相当于做:

    rbind(lis[[1]], lis[[2]], lis[[3]]......)
    

    等等,不管有多少元素。

    【讨论】:

      猜你喜欢
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 2014-05-15
      • 1970-01-01
      • 2018-12-11
      • 2017-05-03
      相关资源
      最近更新 更多