在r中重复一些元素

时间:2015-12-18 16:04:07

标签: r vector seq rep

我的矢量包含:

my.var <- c("a","b","c","d","e","f")
my.var
[1] "a" "b" "c" "d" "e" "f"

我只想使用repseq函数来解决这个问题:

"a" "b" "c" "b" "c" "d" "c" "d" "e" "d" "e" "f"

2 个答案:

答案 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"