R 使用索引的倍数来保留或替换向量中的值

R 使用索引的倍数来保留或替换向量中的值,r,vector,sequence,R,Vector,Sequence,“平均值”是1x756数字向量 这是我想写的序列(数字向量): L <- c(rep(0, 251), Mean[252], rep(0, 251), Mean[252*2], rep(0, 251), Mean[252*3]) L在R中,我们可以分成几个组,然后进行连接 i1 <- rep(1:3, each = 252) i2 <- rep(1:3, each = 251) unlist(Map(c, split(rep(0, 753), i

“平均值”是1x756数字向量

这是我想写的序列(数字向量):

L <- c(rep(0, 251), Mean[252],
       rep(0, 251), Mean[252*2],
       rep(0, 251), Mean[252*3])

L在
R
中,我们可以分成几个组,然后进行连接

i1 <- rep(1:3, each = 252) 
i2 <- rep(1:3, each = 251)
unlist(Map(c, split(rep(0, 753), i2), split(Mean * i1, i1)), use.names = FALSE)
i1在向量序列上使用
%%
(模),替换的(第一个)索引作为除数。替换除法结果为零*的值

Mean[seq_along(Mean) %% 252 != 0] <- 0
平均值[沿(平均值)%%252!=0]
Mean[seq_along(Mean) %% 252 != 0] <- 0
set.seed(2)
x <- sample(12)

x[seq_along(x) %% (length(x) / 3) != 0] <- 0
x
# [1]  0  0  0  2  0  0  0  5  0  0  0 10