我的矢量包含:
my.var <- c("a","b","c","d","e","f")
my.var
[1] "a" "b" "c" "d" "e" "f"
我只想使用rep
和seq
函数来解决这个问题:
"a" "b" "c" "b" "c" "d" "c" "d" "e" "d" "e" "f"
答案 0 :(得分:8)
或
x <- c("a","b","c","d","e","f")
n <- 3
x[seq_len(n)+rep(0:(length(x)-n), each=n)]
# [1] "a" "b" "c" "b" "c" "d" "c" "d" "e" "d" "e" "f"
答案 1 :(得分:3)
我们可以尝试
c(t(matrix(my.var, nrow=length(my.var)+1, ncol=3)[1:4,]))
#[1] "a" "b" "c" "b" "c" "d" "c" "d" "e" "d" "e" "f"
或者
c(apply(embed(my.var,3), 1, rev))
#[1] "a" "b" "c" "b" "c" "d" "c" "d" "e" "d" "e" "f"
或者
library(data.table)
unlist(na.omit(setDT(shift(my.var, 0:3, type='lead'))), use.names=FALSE)
#[1] "a" "b" "c" "b" "c" "d" "c" "d" "e" "d" "e" "f"