R 将向量拆分为高度相等的部分

R 将向量拆分为高度相等的部分,r,R,我有一个逻辑向量y,我想把它分成N部分,这样每个部分都有相同数量的TRUE值(我不在乎每个部分中有多少FALSE值)。具体地说,我想要一个长度N+1的整数向量b,使得b[1]=1,b[N+1]=length(y)+1和abs(sum(y[b[I]:b[I+1])-sum(y)/N) 根据您的数字和所需内容,可能会将seq另外包装成圆形。如果您能提供一个可复制的示例和所需的输出,我认为这会有所帮助。 set.seed(1) x = sample(c(T,F), 20, T) #[1] TRUE

我有一个逻辑向量
y
,我想把它分成
N
部分,这样每个部分都有相同数量的
TRUE
值(我不在乎每个部分中有多少
FALSE
值)。具体地说,我想要一个长度
N+1
的整数向量
b
,使得
b[1]=1
b[N+1]=length(y)+1
abs(sum(y[b[I]:b[I+1])-sum(y)/N)

根据您的数字和所需内容,可能会将
seq
另外包装成
圆形。

如果您能提供一个可复制的示例和所需的输出,我认为这会有所帮助。
set.seed(1)
x = sample(c(T,F), 20, T)
#[1]  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE
#[17] FALSE FALSE  TRUE FALSE

N = 3
y = which(x)
y[seq(1, length(y), by = length(y)/N)]
#[1]  1 10 14