我有一个长度为5的字符串。 字符串的每个元素可以采用两个值0和1。
我想写下所有可能的排列。
例如:
0 0 0 0 0
1 0 0 0 0
0 1 0 0 0
.
.
.
1 1 1 1 1
有2 ^ 5个这样的组合。
我知道有一个名为combn
的命令,但我不知道如何处理每个数字可以采用两个可能值的事实。
答案 0 :(得分:5)
也许不是最好的方法,但它有效:
> expand.grid(0:1, 0:1, 0:1, 0:1, 0:1)
Var1 Var2 Var3 Var4 Var5
1 0 0 0 0 0
2 1 0 0 0 0
3 0 1 0 0 0
4 1 1 0 0 0
5 0 0 1 0 0
6 1 0 1 0 0
7 0 1 1 0 0
8 1 1 1 0 0
9 0 0 0 1 0
10 1 0 0 1 0
11 0 1 0 1 0
12 1 1 0 1 0
13 0 0 1 1 0
14 1 0 1 1 0
15 0 1 1 1 0
16 1 1 1 1 0
17 0 0 0 0 1
18 1 0 0 0 1
19 0 1 0 0 1
20 1 1 0 0 1
21 0 0 1 0 1
22 1 0 1 0 1
23 0 1 1 0 1
24 1 1 1 0 1
25 0 0 0 1 1
26 1 0 0 1 1
27 0 1 0 1 1
28 1 1 0 1 1
29 0 0 1 1 1
30 1 0 1 1 1
31 0 1 1 1 1
32 1 1 1 1 1
答案 1 :(得分:3)
您可以使用以下方法获取所有2 ^ 5 = 32种组合:
install.packages('gtools')
library(gtools)
permutations(2,5,v=c(0,1),repeats.allowed=TRUE)