1
我有一个大的xts
,我想根据月份和日期过滤每年的礼物。更快的方法子集xts
library(xts)
junk <- xts(sample.int(101, size = 1461, replace = T), seq(as.Date('2006-01-01'), as.Date('2009-12-31'), 'days'))
junk_sma10 = TTR::SMA(x = junk, n = 10) ## trailing 10 day avg
现在我正在通过一个循环为每一天和每月的价值,这需要一段时间的值。我知道R一次更好地处理媒介。
months_filtered <- idx_apcp30[.indexmon(junk_sma10) == 1] ## filter for feb
final_filtered <- months_filtered[.indexmday(months_filtered) == 15] ## filter for 16th
输出是一年中每一天的独特xts。
SMA
2006-02-16 61.0
2007-02-16 50.5
2008-02-16 60.5
2009-02-16 54.1
,然后下一次迭代(+1 MDAY)将产生
SMA
2006-02-17 64.3
2007-02-17 48.4
2008-02-17 66.1
2009-02-17 48.6
我需要制作并存储每个XTS,这个过程中产生的。我如何做到这一点不循环?
我发现了这样一个解决方案:
junk[seq(as.Date('2006-01-01'),as.Date('2009-12-31'),by='year')]
但我还是会每天都遍历...