如何为向量的每个元素添加多个值

时间:2016-09-13 14:46:45

标签: r

我试图在一系列星期日找到周六,周日,周一的所有日期。通过这样做,我可以得到我想要的东西:

alldays <- Sys.Date() + c(1:100)
allSundays <- alldays[weekdays(alldays)=='Sunday']
length(allSundays) ## 7 elements
nearby <- c(-1,0,1)
result <- c(c(allSundays + nearby[1]),c(allSundays + nearby[2]),c(allSundays + nearby[3]))
length(result) ## 21 elements. 

但是我希望有一种更优雅的方式(某种形式的apply或某种黑暗的data.table魔法?)如果这是重复的我会道歉但是我想不到这(小)问题的良好搜索条件。

1 个答案:

答案 0 :(得分:2)

做你想做的事情的一种方法是重复你的星期日矢量,附近将循环到正确的长度:

rep(allSundays, e=3) + nearby

all(sort(result)==(rep(allSundays, e=3) + nearby))
#[1] TRUE