Groupe R par jour, et de résumer les valeurs
R est nouveau pour moi et je suis en train de travailler avec un (privé)dataset.
J'ai le problème suivant, j'ai beaucoup de temps de la série:
2015-04-27 12:29:48
2015-04-27 12:31:48
2015-04-27 12:34:50
2015-04-27 12:50:43
2015-04-27 12:53:55
2015-04-28 00:00:00
2015-04-28 00:00:10
Tous les timeseries ont une valeur:
Datetime value
2015-04-27 12:29:48 0.0
2015-04-27 12:31:48 0.0
2015-04-27 12:34:50 1.1
2015-04-27 12:50:43 45.0
2015-04-27 12:53:55 0.0
2015-04-28 00:00:00 1.0
2015-04-28 00:00:10 2.0
Je veux passer tous les heures et les minutes, et somme tous ensemble comme ceci:
Datetime value
2015-04-27 46.1
2015-04-28 3.0
La première chose que j'ai faite a été de transformer la colonne datetime:
energy$datetime <- as.POSIXlt(energy$datetime)
J'ai essayé plusieurs trucs avec les résumer de la fonction:
df %>% group_by(energy$datetime) %>% summarize (energy$newname(energy$value))
Mais qui ne fonctionne pas.
J'ai lu aussi concurrentiel des trucs sur internet (par exemple: http://r.789695.n4.nabble.com/How-to-sum-and-group-data-by-DATE-in-data-frame-td903708.html) mais ça n'a pas de sens pour moi (oui, je suis un noob).
J'espère que quelqu'un pourrait m'aider!
- Essayez
energy %>% group_by(datetime) %>% summarize(newvar =mean(value))
, La première chose que la ligne est votre dataframe, et vous n'avez pas besoin de le spécifier dans les appels suivants. Voir r-bloggers.com/magrittr-simplifying-r-code-with-pipes
Vous devez vous connecter pour publier un commentaire.
Utiliser comme.Date() puis aggregate().
MODIFIER
Emma a fait un bon point à propos des noms de colonne. Vous pouvez conserver le nom des colonnes dans l'ensemble à l'aide de le au lieu.
aggr_energy <-aggregate(energy$value, by=list(energy$Date), sum)
colnames(aggr_energy) <- c('date', 'medium', 'pageviews')
aggregate(energy["value"], by=energy["Date"], sum)
, doit préserver les noms de colonne.à l'aide de données.tableau
À l'aide de la tidyverse, spécifiquement lubridate et dplyr:
Créé sur 2018-08-01 par le reprex
package (v0.2.0).
vous êtes sur la bonne voie - essayer :
summarise(newVal = sum(energy$value) )
pour résumer votre appel.
df<- energy %>% group_by(datetime) %>% summarise(sum =sum(value)) )
df
ici est synonyme de dataframe. Est votre dataframe appelédf
? C'est, vos données sont stockées dans un objet appelédf
? Il semble que vos données sont stockées dans un objet appeléenergy
, afin de l'utiliserenergy
au lieu dedf
.group_by(data, var,...)
. Si vous utilisez le%>%
commande vous mettez vos données à l'avant, cedata %>% group_by(variableInData)
. Assigner à une autre variable:dfGroup <- energy %>% group_by(datetime) %>% summarise(value)
Vous n'avez qu'à fixer la date de la première que vous l'avez fait dans votre code précédent. Cheers! Avis de la<-
Opérateur