如何从向量创建子向量?每个子向量均由主向量的后续值组成

Kin*_*jal 1 r

我正在尝试从主向量创建子向量。每个子向量将由主向量中的下一个后续值组成。

我正在尝试避免循环。x是输入,我希望输出为vec_1,vec_2依此类推。

x<-c(23,45,32,45,1,67,89,92,101,5,63,42,65)

vec_1 <- c(23,45)

vec_2 <- c(23,45,32)

vec_3 <- c(23,45,32,45)

vec_4 <- c(23,45,32,45,1)
Run Code Online (Sandbox Code Playgroud)

我试图以此方式生成带有索引的字符串向量。我无法将字符串从say转换"1:5"为c(1:5)。

x<-c(23,45,32,45,1,67,89,92,101,5,63,42,65)

a<-paste("1:",c(5:length(x)),sep="")

x[as.integer(a[1])] ###This does not work

Run Code Online (Sandbox Code Playgroud)

mar*_*kus 5

一个选项使用 split

idx <- sequence(2:length(x))
split(x[idx], cumsum(idx == 1))
#$`1`
#[1] 23 45

#$`2`
#[1] 23 45 32

#$`3`
#[1] 23 45 32 45

#$`4`
#[1] 23 45 32 45  1

#$`5`
#[1] 23 45 32 45  1 67

# ...
Run Code Online (Sandbox Code Playgroud)