J'ai besoin de produire des moyennes mobiles de différentes longueurs pour plusieurs objets de séries chronologiques. Idéalement, il me resterait une trame de données pour chaque objet de série temporelle avec les moyennes mobiles stockées dans des colonnes adjacentes. J'ai été capable de produire la sortie que je voulais pour l'un des objets, mais c'était lent et j'ai besoin de pouvoir reproduire cela sur plusieurs séries. J'ai essayé d'utiliser mapply et cbind, mais je ne finis pas avec des résultats utilisables ... merci pour toute aide que vous pouvez offrir!Application de rollmean à plusieurs séries chronologiques, avec plusieurs fenêtres
library(zoo)
library(quantmod)
library(plyr)
symbollist <- c("SPY", "FXY", "FXE", "GLD", "JJC", "TLT")
getSymbols(symbollist, from="2014-01-01")
#list of symbols
snp <- SPY[,6]
jpy <- FXY[,6]
eur <- FXE[,6]
gld <- GLD[,6]
cop <- JJC[,6]
lut <- TLT[,6]
#poving average periods
periods<- c(10,20,50)
datalist <- list(snp,jpy,eur,gld,cop,lut)
rm <- function(a,b){
rollmean(a, b, align="right")
}
mapply(rm, datalist, periods)
En utilisant le code ci-dessous je peux produire ce que je veux, mais je voudrais reproduire ce à travers plusieurs séries temporelles différentes en utilisant un plus large éventail de fenêtres. Il devrait ressembler à ceci, avec une base de données comme celle ci-dessous pour chaque objet de série chronologique.
SPY.Adjusted ma.10 ma.20 ma.50
2014-01-02 175.7868 NA NA NA
2014-01-03 175.7579 NA NA NA
2014-01-06 175.2486 NA NA NA
2014-01-07 176.3249 NA NA NA
2014-01-08 176.3634 NA NA NA
2014-01-09 176.4787 NA NA NA
2015-12-31 203.8700 204.2948 204.5172 205.8787
2016-01-04 201.0200 204.0320 204.3485 205.8859
2016-01-05 201.3600 204.1660 203.9975 205.8322
2016-01-06 198.8200 203.8810 203.5826 205.6830
2016-01-07 194.0500 202.9360 202.9988 205.4485
2016-01-08 191.9200 201.5260 202.3886 205.1793
2016-01-11 192.1100 200.1690 201.7615 204.8672
2016-01-12 193.6600 199.0140 201.4102 204.5886
fenêtres ... ce qui signifie des périodes de temps? – mrp