r - 正确使用应用函数从列表元素组合生成列表

标签 r list apply

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

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 中执行此操作?

最佳答案

我会建议一些不同的东西。只需使用 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

关于r - 正确使用应用函数从列表元素组合生成列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26339595/

相关文章:

r - 如果匹配,数据框列上的 ifelse 将替换为日期时间列值

java - 如何一次删除不同的可更新记录?

python - 我如何在同一个列表中有两个 for 循环,但第二个循环从第一个循环的下一个值开始?

Java List.addAll 使用集合的流而不是使用集合本身?

python - 将函数应用于两列 Pandas

r - 选择级别数等于 1 的分类变量

arrays - 从n,k维矩阵中减去n,k维矩阵

r - 在 R/Shiny 中,htmlOutput()/renderUI() 的最佳替代方案?

r - ggplot 主题删除 gtable 中两个图上的 y 轴,保留第三个图

r - 如何将表格添加到 Shiny 条件面板的隐藏选项中?