生成包含两个列表之间所有可能组合的数据框

Generate a dataframe with all possible combinations between two lists

你好,我有两个列表:

list1<-c("A","B")
list2<-c(1,2,3)

我想获得所有可能的组合并将其保存到数据框中,例如:

有一个名为 Possibilities 的列,它指的是可能性的名称。

list1 list2 Possibilities
A     1     P1
B     1     P1
A     2     P2
B     2     P2
A     3     P3
B     3     P3
A     1     P4
B     2     P4
A     2     P5
B     1     P5
A     3     P6
B     1     P6
A     1     P7
B     3     P7
A     2     P8
B     3     P8
A     3     P9
B     2     P9

解决方案:

> expand.grid(list1,list2)

不是我想要的,因为它给出了:

  Var1 Var2
1    A    1
2    B    1
3    A    2
4    B    2
5    A    3
6    B    3

我想你可以尝试 expand.grid 如下所示

data.frame(
  lst1 = list1,
  lst2 = c(t(rev(expand.grid(rep(list(list2), length(list1)))))),
  Possibilities = paste0("P", rep(seq(length(list2)^length(list1)), each = length(list1)))
)

这给出了

   lst1 lst2 Possibilities
1     A    1            P1
2     B    1            P1
3     A    1            P2
4     B    2            P2
5     A    1            P3
6     B    3            P3
7     A    2            P4
8     B    1            P4
9     A    2            P5
10    B    2            P5
11    A    2            P6
12    B    3            P6
13    A    3            P7
14    B    1            P7
15    A    3            P8
16    B    2            P8
17    A    3            P9
18    B    3            P9