J'ai un grand xts
que je veux filtrer par mois et par date pour chaque année présente.Plus rapide façon de sous-ensemble 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
En ce moment, je le ferais via une boucle pour chaque jour et mois qui prend un certain temps. Je sais que R est mieux à faire des choses à la fois.
months_filtered <- idx_apcp30[.indexmon(junk_sma10) == 1] ## filter for feb
final_filtered <- months_filtered[.indexmday(months_filtered) == 15] ## filter for 16th
La sortie est un xts unique pour chaque jour de l'année.
SMA
2006-02-16 61.0
2007-02-16 50.5
2008-02-16 60.5
2009-02-16 54.1
puis la prochaine itération (+1 mday) produirait
SMA
2006-02-17 64.3
2007-02-17 48.4
2008-02-17 66.1
2009-02-17 48.6
je dois produire et stocker tous les XTS que ce processus produit. Comment est-ce que je fais ceci en boucle?
J'ai trouvé une solution comme ceci:
junk[seq(as.Date('2006-01-01'),as.Date('2009-12-31'),by='year')]
Mais je dois encore parcourir tous les jours ...