R:Binary matrix for all possible unique results

十年热恋 提交于 2019-11-28 01:13:14

问题


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.


回答1:


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



回答2:


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




回答3:


Try this

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


来源:https://stackoverflow.com/questions/17292091/rbinary-matrix-for-all-possible-unique-results

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!