R:Binary matrix for all possible unique results

2020-02-11 05:51发布

How to generate a binary matrix for all possible permutations of 'i' variables X, where " i " can be any number between 1 and infinite. Resultant matrix will have 2^ i unique rows.

For i=2 , variables x1, x2 each with a possible value of 1 or 0, so the resultant matrix would be:

X1 X2
0 0
0 1
1 0
1 1

Is there any function in R to generate ?

I tried with below function:

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

But the result does not show all possible values.

3条回答
Anthone
2楼-- · 2020-02-11 06:08

The fonction combos of the package hier.part will do the job I think.

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

Except that you will have to add the "null" combination. HTH

查看更多
We Are One
3楼-- · 2020-02-11 06:14

you can use expand.grid:

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

More generally, with 5 columns for example, giving 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
查看更多
【Aperson】
4楼-- · 2020-02-11 06:15

Try this

i =2
install.packages('gtools')
library(gtools)
permutations(2,i,v=c(0,1),repeats.allowed=TRUE)
查看更多
登录 后发表回答