从 'n' 列表中找到 select 'n' 元素的所有可能方法

Finding all possible ways to select 'n' elements from 'n' lists

我想在 R 中找到计算效率最高的方法来获得从 'n' 个单独列表中获取 'n' 值的所有可能方法,其中每个列表可能有 1 个或多个元素。我将举例说明。

假设我有一个列表列表(在我的示例中,具体来说是一个包含四个列表的列表):

ll <- list(list(1), list(2), list(1,3), list(2,4))

我想获得所有方法,以便从这个列表列表的四个列表中的每一个列表中抽取一个值。在这种情况下,可能的值集是:

c(1, 2, 1, 2)
c(1, 2, 1, 4)
c(1, 2, 3, 2)
c(1, 2, 3, 4)

值集可以作为列表列表、矩阵、数据框等形式返回。我只想获取可以从 'n' 列表中获取的每组可能的 'n' 值,每个列表中的一个值。我认为我必须使用某种 for 循环来执行此操作,但欢迎提出任何建议。谢谢。

您可以尝试以下操作

expand.grid(ll)

#   Var1 Var2 Var3 Var4
# 1    1    2    1    2
# 2    1    2    3    2
# 3    1    2    1    4
# 4    1    2    3    4