使用0或1个元素生成一定长度的所有向量

时间:2015-04-06 00:25:06

标签: r vector combinations

我需要生成具有一定长度的元素0或1的所有可能的向量。

例如,这里长度为6,我需要所有向量:

(0,0,0,0,0,0),(0,0,0,0,0,1),...,(1,1,1,1,1,1)

搜索周围,我找到了一种方法,使下面的向量y包含64个字符串"000000","000001",...,"111111",但现在我不知道如何将每个字符串转换为相关的向量。

x <- seq(0,2^6-1,1)
library(R.utils)
y <- inToBin(x)

修改:我想出了如何执行此操作:

z <- matrix(NA,nrow=length(y),ncol=6)
for(i in 1:length(y)){
  z[i,] <- as.numeric(strsplit(y[i],"")[[1]])
}

1 个答案:

答案 0 :(得分:4)

在尝试构建组合的详尽示例时,首先考虑expand gridcombn函数。在这里,我想你想要expand.grid设施。:

 str( apply(expand.grid(0:1,0:1,0:1,0:1,0:1,0:1), 1, paste0, collapse="") )

 chr [1:64] "000000" "100000" "010000" "110000" "001000" ...

但也许你真的不想那样而只想要

apply(expand.grid(0:1,0:1,0:1,0:1,0:1,0:1), 1, list)

或者只是:

expand.grid(0:1,0:1,0:1,0:1,0:1,0:1)
相关问题