生成具有 0 或 1 个元素的特定长度的所有向量
Generate all vectors of certain length with 0 or 1 elements
我需要用特定长度的元素 0 或 1 生成所有可能的向量。
比如这里的长度是6,我需要所有的向量:
(0,0,0,0,0,0),(0,0,0,0,0,1),...,(1,1,1,1,1,1)
四处寻找,我找到了一种方法来制作下面包含64个字符串"000000","000001",...,"111111"
的向量y
,但现在我不知道如何将这些字符串中的每一个转换成相关的矢量。
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]])
}
expand grid
和 combn
函数是您尝试构造详尽的组合示例时的第一个想法。在这里,我认为您需要 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)
我需要用特定长度的元素 0 或 1 生成所有可能的向量。
比如这里的长度是6,我需要所有的向量:
(0,0,0,0,0,0),(0,0,0,0,0,1),...,(1,1,1,1,1,1)
四处寻找,我找到了一种方法来制作下面包含64个字符串"000000","000001",...,"111111"
的向量y
,但现在我不知道如何将这些字符串中的每一个转换成相关的矢量。
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]])
}
expand grid
和 combn
函数是您尝试构造详尽的组合示例时的第一个想法。在这里,我认为您需要 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)