2013-06-25 3 views
4

'i'변수 X의 모든 순열에 대해 이진 행렬을 생성하는 방법. 여기서 "i"는 1과 무한 사이의 숫자 입니다. 결과 행렬은 2^i 고유 행을가집니다.R : 가능한 모든 고유 한 결과에 대한 이진 행렬

난 = 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)) 

그러나 결과는 가능한 모든 값을 표시하지 않습니다.

답변

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을 제공 : 내가 생각하는 일을 할 것입니다 hier.part 패키지의

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

fonction 콤보를 .

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

0

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