J'ai un ensemble de données avec une structure semblable à un fichier journal très simple, je veux sous-ensemble les données en fonction des plages de dates, mais je ne peux le faire que sur un paramètre.
mes données ressemblent à ceci:
date_time loc_id node energy kgco2
1 2009-02-27 00:11:08 87 103 0.00000 0.00000
2 2009-02-27 01:05:05 87 103 7.00000 3.75900
3 2009-02-27 02:05:05 87 103 6.40039 3.43701
4 2009-02-27 03:05:05 87 103 4.79883 2.57697
5 2009-02-27 04:05:05 87 103 4.10156 2.20254
6 2009-02-27 05:05:05 87 103 2.59961 1.39599
le fichier comprend des données pour une année entière, je veux créer des graphiques récapitulatifs pour chaque mois et peut-être la semaine
Je traite la date_heure comme suit:
> dt <-as.POSIXlt(ae$date_time)
> ae$dt <- dt
> names(ae$dt)
[1] "sec" "min" "hour" "mday" "mon" "year" "wday" "yday" "isdst"
maintenant j'essaye de sous-définir les données comme:
> x <- ae$energy[ae$dt$year=="110" & ae$dt$mon=="10"]
> x
numeric(0)
"110" est dû au fait que:
> range(ae$dt$year)
[1] 109 110
J'ai également essayé ce qui suit sans succès:
> d <- subset(ae, (dt$year=="110" & dt$mon=="10"), select=energy)
ceux-ci fonctionnent cependant:
> d <- subset(ae, dt$year=="110", select=energy)
et cela aussi
> d <- subset(ae, dt$mon=="10", select=energy)
des idées sur comment puis-je sous-ensemble en sélectionnant à la fois l'année et le mois?
Merci,
time-series
r
G Garcia
la source
la source
Réponses:
ok séries temporelles semblent avoir fait l'affaire:
la source
Quelques points:
<=
et>=
de sous-ensemble. Quelque chose commeae[ae$date >= as.POSIXlt("2009-10-01") & ae$date < as.POSIXlt("2009-11-01"),]
zoo
.xts
comprend également un certain nombre de fonctions qui peuvent aider avec ce genre de chose.la source
zoo
. Cela rendrait votre tâche beaucoup plus facile.xts
est plus destiné aux implémenteurs de packages, même si je l'ai utilisé directement.