如何为“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))
但结果并未显示所有可能的值。
如何为“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))
但结果并未显示所有可能的值。
你可以使用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
包 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”组合。高温高压
尝试这个
i =2
install.packages('gtools')
library(gtools)
permutations(2,i,v=c(0,1),repeats.allowed=TRUE)