【问题标题】:Correct use of apply-functions for producing a list from list element combinations正确使用应用函数从列表元素组合生成列表
【发布时间】:2014-12-07 23:52:22
【问题描述】:

我有一个看起来像这样的列表对象

list1 <- list(c("A1", "A2"), "B", c("C1", "C2"))

据此,我想生成一个列表,其中包含 list1 中所有元素组合的列表。对于 list1 它应该是这样的

list2 <- list(list("A1", "B", "C1"), list("A1", "B", "C2"), list("A2", "B", "C1"), list("A2", "B", "C2"))

由于 list1 中的元素更多,因此无法手动生成。我该如何在 R 中执行此操作?

【问题讨论】:

    标签: r list apply


    【解决方案1】:

    我会建议一些不同的东西。只需使用expand.grid 并获得data.frame 的组合:

    expand.grid(list1)
    #   Var1 Var2 Var3
    # 1   A1    B   C1
    # 2   A2    B   C1
    # 3   A1    B   C2
    # 4   A2    B   C2
    

    或者,类似地,对于“data.table”,使用CJ

    library(data.table)
    do.call(CJ, list1)
    #    V1 V2 V3
    # 1: A1  B C1
    # 2: A1  B C2
    # 3: A2  B C1
    # 4: A2  B C2
    

    【讨论】:

      猜你喜欢
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多