我正在尝试从主向量创建子向量。每个子向量将由主向量中的下一个后续值组成。
我正在尝试避免循环。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)
一个选项使用 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)