如何将父向量的第一个元素与R相加,将向量拆分为等长

如何将父向量的第一个元素与R相加,将向量拆分为等长,r,split,R,Split,我想把一个向量拆分成等长的子向量,但如果最后一个子向量的长度不等于其他子向量的长度,则将其与父向量的第一个元素相加 我试着回答一个我不想要的问题 ts <- 1:11 bs <- 3 nb <- ceiling(length(ts) / bs) split(ts, rep(1:nb, each=bs, length.out = length(ts))) #$`1` #[1] 1 2 3 #$`2` #[1] 4 5 6 #$`3` #[1] 7 8 9 #$`4`

我想把一个向量拆分成等长的子向量,但如果最后一个子向量的长度不等于其他子向量的长度,则将其与父向量的第一个元素相加

我试着回答一个我不想要的问题

ts <- 1:11 
bs <- 3 
nb <- ceiling(length(ts) / bs)

split(ts, rep(1:nb, each=bs, length.out = length(ts)))

#$`1`
#[1] 1 2 3

#$`2`
#[1] 4 5 6

#$`3`
#[1] 7 8 9

#$`4`
#[1] 10 11
#$`1`
#[1] 1 2 3

#$`2`
#[1] 4 5 6

#$`3`
#[1] 7 8 9

#$`4`
#[1] 10 11 1
#Extend the `ts` to have a total length of `bs * nb`
split(rep(ts, length.out = nb * bs), rep(1:nb, each = bs))
#OR use modular arithmetic
split(ts[((sequence(nb * bs) - 1) %% length(ts)) + 1], rep(1:nb, each = bs))
#$`1`
#[1] 1 2 3

#$`2`
#[1] 4 5 6

#$`3`
#[1] 7 8 9

#$`4`
#[1] 10 11  1