J'ai du mal à trouver un moyen d'agréger un objet de zoo aux résultats hebdomadaires avec des lacunes dans des mesures hebdomadaires. Il s'agit d'utiliser diff code> et d'autres fonctions (par exemple
ACF code>) sur les résultats.
td_month <- as.zooreg(aggregate(z_td, by = as.yearmon, sum), freq= 12)
str(td_month)
#> 'zooreg' series from Jan 2009 to Mar 2009
#> Data: int [1:3] 48 25 46
#> Index: 'yearmon' num [1:3] Jan 2009 Feb 2009 Mar 2009
#> Frequency: 12
str(td_week)
#> 'zooreg' series from 2009-01-04 to 2009-03-08
#> Data: int [1:4] 27 21 25 46
#> Index: Date[1:4], format: "2009-01-04" "2009-01-11" "2009-02-08" "2009-03-08"
#> Frequency: 52
3 Réponses :
Je ne suis pas sûr de bien comprendre ce que vous essayez de faire, mais peut-être d'abord remplir les dates manquantes avec des zéros fonctionnera?
time_all_possibilities = data.frame( day = seq(ymd("2009-01-02"), ymd("2009-03-06"), by = "days")) time_data = merge(time_data, time_all_possibilities, by = "day", all = T) time_data$n_daily[is.na(time_data$n_daily)] = 0
C'est une approche intéressante, cependant, cela ne fonctionne pas sur mes données agrégées personnellement, malheureusement (mais cela fonctionne sur l'objet XTS). (BTW Vous avez oublié bibliothèque (lubridate) code>;)
convert donnant: p> td_week code> à une série régulièrement espacée, puis utilisez diff.xts:
Merci, cela fonctionne. Intéressant. Au fait, vous avez répondu que je me suis rendu compte que je n'ai pas référencé de manière appropriée vos fonctions d'autres réponses. Mettra à jour cela maintenant - merci aussi pour cela :)
Moi encore. Je ne comprends pas pourquoi DIFF fonctionne sur l'objet XTS code>, mais pas sur l'objet
zooreg code>. Les carédata et l'index sont exactement les mêmes dans les deux. Et pourquoi DIFF fonctionne-t-il alors sur les données mensuelles du zoo agrégé? :( besoin de plus de lecture je suppose.
En principe, la façon dont vous configurez Des choses aussi simples en premier: Simplement la bande de la fréquence code> code> avec td_week_strictreg code> est la bonne approche (analogue à ce que @ g.grothendieck a fait pour
XTS code>) mais la fréquence
= 52 est incorrect et fait gâcher les choses.
as.zoo () code> et vous obtenez le même résultat comme pour
XTS code> - sauf pour
NA code> PADIND: P>
td_week_zooreg2 <- zooreg(coredata(td_week_zoo), start = 2009, frequency = 52)
time(td_week_zooreg2)
## [1] 2009.000 2009.019 2009.038 2009.058 2009.077 2009.096 2009.115 2009.135
## [9] 2009.154 2009.173
diff(td_week_zooreg2)
## 2009(2) 2009(3) 2009(4) 2009(5) 2009(6) 2009(7) 2009(8) 2009(9)
## -6 -21 0 0 25 -25 0 0
## 2009(10)
## 46
C'est super utile. Merci beaucoup de fois !!! aimerait donner deux upvotes ici. Malheureusement, j'ai déjà accepté l'autre réponse!
Ça va bien. Je pense que les réponses combinées pour mon co-auteur et moi-même devraient fournir la photo complète :-)