记下二进制字符串的所有组合

时间:2014-08-19 07:17:27

标签: r

我有一个长度为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的命令,但我不知道如何处理每个数字可以采用两个可能值的事实。

2 个答案:

答案 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)