J'ai des données à un intervalle de 0,1 seconde ou 10 lignes pendant une seconde Donc 864000 lignes pour un jour basé sur 24 * 60 * 60 * 10 . Je veux trouver la moyenne des colonnes (la vitesse du vent et d'autres variables non montrées ici) dans mes données en l'agrégeant de 0.1 seconde pas de temps à une demi-heure. Ainsi, les données sont agrégées à partir 864000 lignes à 48 lignes (pour un jour)pas de temps de 0,1 seconde à demi-heure (30 minutes) avec heures décimales UTC
Entrée:
tms Hr Min Sec Wind speed
7/13/2014 0:00 0 0 0 3.45
7/13/2014 0:00 0 0 0.1 52.34
7/13/2014 0:00 0 0 0.2 1.23
7/13/2014 0:00 0 0 0.3 4.3
7/13/2014 0:00 0 0 0.4 1.34
7/13/2014 0:00 0 0 0.5 3.6
sortie Je veux voir:
Year Month Day Hr Wind speed
7/13/2014 7 13 0 21.92
7/13/2014 7 13 0.5 29.38
7/13/2014 7 13 1 24.18
7/13/2014 7 13 1.5 1.70
7/13/2014 7 13 2 1.80
Mon code pour la moyenne horaire et je veux changer pour agréger les données par demi-heure (pas une heure). Où dat
est la colonne de données sans tms
: j'ai donc ajouté une colonne de date.
library(data.table)
library(xts)
dat <- data.table(dat)
tms <- as.POSIXct(seq(0,24*(60*60*10)-1,by=1),origin="2014-07-13",tz="UTC")
xts.ts <- data.frame(xts(dat,tms))
Maintenant, j'ajouté tms
colonne à mes données
Aut <- data.frame(tms,xts.ts, check.names=FALSE, row.names=NULL)
mean2 <- aggregate(Aut,
list(hour=cut(as.POSIXct(Aut$tms), "hour")),
mean)
Mais ce ne corrigera pas même pour toutes les heures. Je veux dire mes données par demi-heure. Aucune suggestion?
Ce n'est pas clair pour moi ce que vous voulez que la sortie soit. L'agrégation par le temps est facile avec xts, mais vous n'avez pas fourni une entrée reproductible ('dat' n'est pas définie) ou un exemple de la sortie que vous attendez. Fournissez ces deux choses et vous recevrez probablement plusieurs réponses. –
je l'ai édité, mais il a probablement besoin de mise en forme – Wisconsin
@JoshuaUlrich Je l'ai édité et fourni la sortie, mais je ne sais pas ce qui est arrivé à la mise en forme. Je veux des valeurs moyennes de 0,1 seconde étape à 30 minutes (0,5 heure). donc rouler les données de 864000 lignes à 48 lignes pour un jour – Wisconsin