R 用N>;从k个项目中枚举大小N的所有组合;K
我有一个问题,我有k个项目,比如R 用N>;从k个项目中枚举大小N的所有组合;K,r,sampling,R,Sampling,我有一个问题,我有k个项目,比如{0,1},我必须枚举所有可能的N绘图,比如N=3。也就是说,我试图从向量中找到给定大小的所有可能样本,并进行替换 我可以通过以下循环方法到达: for (i1 in c(0,1)){ for (i2 in c(0,1)){ for (i3 in c(0,1)){ print(paste(i1,i2i3,collapse="_")) }}} 然而,这感觉像是一个混乱。有没有更好的方法使用base R来实现这
{0,1}
,我必须枚举所有可能的N
绘图,比如N=3
。也就是说,我试图从向量中找到给定大小的所有可能样本,并进行替换
我可以通过以下循环方法到达:
for (i1 in c(0,1)){
for (i2 in c(0,1)){
for (i3 in c(0,1)){
print(paste(i1,i2i3,collapse="_"))
}}}
然而,这感觉像是一个混乱。有没有更好的方法使用base R来实现这一点 如果
vec
是您的向量,n
是您从vec
中提取的次数,要列举所有可能性,请尝试:
expand.grid(replicate(n,vec,simplify=FALSE),
KEEP.OUT.ATTRS=FALSE,stringsAsFactors=FALSE)
例如:
vec<-0:1
n<-3
expand.grid(replicate(n,vec,simplify=FALSE),
KEEP.OUT.ATTRS=FALSE,stringsAsFactors=FALSE)
# Var1 Var2 Var3
#1 0 0 0
#2 1 0 0
#3 0 1 0
#4 1 1 0
#5 0 0 1
#6 1 0 1
#7 0 1 1
#8 1 1 1
vec您可以使用交互
:
items <- c(0, 1)
n <- 3
levels(interaction(rep(list(items), n), sep = "_"))
# [1] "0_0_0" "1_0_0" "0_1_0" "1_1_0" "0_0_1" "1_0_1" "0_1_1" "1_1_1"
items好问题,+1!我没有找到任何有用的搜索“所有可能的样本替换”,所以我编辑了你的问题,以便更容易找到未来的用户有相同的问题。