“平均值”是1x756的数字矢量
这是我要编写的序列(数字矢量):
L <- c(rep(0, 251), Mean[252],
rep(0, 251), Mean[252*2],
rep(0, 251), Mean[252*3])
也就是说,我想保留252的倍数。其他索引应替换为零。
我有一种更聪明的书写方式吗?
答案 0 :(得分:3)
在向量的序列上使用%%
(以模数为单位),替换的(第一个)索引为除数。替换除法结果为零*的值。
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
*感谢@snoram提出了更直接的选择。
答案 1 :(得分:1)
在SELECT ... WHERE (colname LIKE text1 OR colname LIKE text2 OR colname LIKE text3 OR ....... colname LIKE textn) OR (colname LIKE 'text1 text2 text3 ...textn')
中,我们可以分成几组,然后进行串联
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)