Dear R-help list,
I have a problem in which I would like to concatenate elements from lists in
a combinational order. For example, I have a list of n character vectors
(here 3), each with m elements (here 7,3,1):
lst <-
list(c("a","aB","aBC","aC","B","BC","C"),
c("B","Bc","c"), c("D"))
[[1]]
[1] "a" "aB" "aBC" "aC"
"B" "BC" "C"
[[2]]
[1] "B" "Bc" "c"
[[3]]
[1] "D"
As the first list element has seven, the second has three and the third has
one element, there are 21 different combinations of the individual vector
elements:
idx <- expand.grid(1:7,1:3,1:1)
Var1 Var2 Var3
1 1 1 1
2 2 1 1
. . . .
6 6 1 1
7 7 1 1
8 1 2 1
9 2 2 1
. . . .
20 6 3 1
21 7 3 1
How could I create an exhaustive list of length 21 now, each of whose
elements contains a unique combination of vector elements? I.e., the final
list should look like this
[[1]]
[1] "a" "B" "D"
[[2]]
[1] "aB" "B" "D"
[[3]]
[1] "aBC" "B" "D"
[[4]]
[1] "aC" "B" "D"
.....
[[21]]
[1] "C" "c" "D"
Many thanks for help,
Alrik
********************************
Alrik Thiem
Post-Doctoral Researcher
Department of Philosophy
University of Geneva
Rue de Candolle 2
CH-1211 Geneva
+41 76 527 80 83
http://www.alrik-thiem.net
http://www.compasss.org