Je suis novice dans l'analyse des séries chronologiques et j'utilise xts (et R en général), donc veuillez pardonner la nature de base de la question.Agréger des données dans un objet xts par l'heure et la seconde variable (facteur)
Je veux agréger les données par une trame de temps (par exemple des mois) et par une seconde variable de facteur. Pour illustrer ma question, s'il vous plaît voir le suivant:
require(xts)
# Create example df and convert it to an xts object
date <- sample(seq(as.Date("2015/01/01"), as.Date("2016/12/31"), by="day"),12)
colour <- c("Red", "Red", "Blue", "Blue", "Blue", "Blue", "Red", "Red", "Red",
"Red", "Blue", "Blue")
value <- sample(1:10, 12, replace = TRUE)
df <- cbind.data.frame(date, colour, value)
df <- xts(df[,-1], order.by = df$date)
Cela crée une trame de données d'échantillon qui ressemble à ceci:
colour value
2015-01-30 "Blue" "2"
2015-03-15 "Blue" "9"
2015-03-22 "Blue" "9"
2015-08-13 "Blue" "5"
2015-09-01 "Blue" "8"
2015-11-10 "Red" "7"
2016-04-26 "Blue" "2"
2016-07-06 "Red" "9"
2016-07-07 "Red" "6"
2016-07-08 "Red" "2"
2016-10-01 "Red" "6"
2016-11-07 "Red" "2"
Je peux résumer la variable "valeur" à l'aide:
apply.monthly(df$value, FUN = mean)
Pour me donner:
value
2015-01-30 2.000000
2015-03-22 9.000000
2015-08-13 5.000000
2015-09-01 8.000000
2015-11-10 7.000000
2016-04-26 2.000000
2016-07-08 5.666667
2016-10-01 6.000000
2016-11-07 2.000000
Mais je ne peux pas vraiment voir comment agréger par (dans ce cas) la variable de couleur (je voudrais la somme de chaque couleur par mois). Toute aide serait grandement appréciée.
Très utile @NBATrends Thi s solution fonctionne mais crée une variable "Month" qui est la classe "Character". Y a-t-il un moyen de s'assurer que la sortie reste en classe "Date"? J'ai essayé 'as.Date (df $ Month, format ="% Y-% m ")' mais en vain. Apprécier ton aide. – drgregmartin