R:所有可能独特结果的二进制矩阵

时间:2013-06-25 07:59:26

标签: r matrix binary binary-matrix

如何为所有可能的二进制矩阵生成 'i'变量X的排列,其中“i”可以是任意变量 数字介于1和无限之间。结果矩阵将具有2 ^ i个唯一行。

对于i = 2,变量x1,x2各自的可能值为1或0, 所以得到的矩阵是:

X1 X2
0 0
0 1
1 0
1 1

R中是否有任何函数可以生成?

我尝试使用以下功能:

   matrix(rbinom(160, 1, 0.5),ncol=5,nrow=(2^5))

但结果并未显示所有可能的值。

3 个答案:

答案 0 :(得分:4)

您可以使用expand.grid

 expand.grid(c(0,1),c(0,1))
  Var1 Var2
1    0    0
2    1    0
3    0    1
4    1    1

更一般地说,例如,使用5列,提供m

m <- as.data.frame(matrix(rbinom(5*2, 1, 0.5),ncol=5))
 V1 V2 V3 V4 V5
1  0  1  1  0  0
2  0  1  1  0  0

dim(expand.grid(m))
32 5

答案 1 :(得分:2)

包hier.part的功能组合将完成我认为的工作。

require(hier.part)
combos(2)$binary
     [,1] [,2]
[1,]    1    0
[2,]    0    1
[3,]    1    1

combos(3)$binary
     [,1] [,2] [,3]
[1,]    1    0    0
[2,]    0    1    0
[3,]    0    0    1
[4,]    1    1    0
[5,]    1    0    1
[6,]    0    1    1
[7,]    1    1    1

除非您必须添加“null”组合。 HTH

答案 2 :(得分:0)

试试这个

i =2
install.packages('gtools')
library(gtools)
permutations(2,i,v=c(0,1),repeats.allowed=TRUE)
相关问题