J'ai un cadre de données df
qui contient des "messages". Chaque ligne est un message. Chaque message possède un horodatage appelé df$messagedate
au format POSIXct %Y-%m-%d %H:%M:%S
. Exemple :
> head(df)
messageid user.id message.date
123 999 2011-07-17 17:54:27
456 888 2011-07-19 16:56:50
(Voici le dput()
de ce qui précède) :
df <- structure(list(messageid = c(123L, 456L), user.id = c(999L, 888L),
message.date = structure(c(1310950467, 1311119810), class = c("POSIXct",
"POSIXt"), tzone = "")), .Names = c("messageid", "user.id",
"message.date"), row.names = c(NA, -2L), class = "data.frame")
Comment créer un cadre de données avec le nombre total de messages par jour ? Exemple :
day message.count
2011-07-17 1
2011-07-18 0
2011-07-19 1
Plutôt que de ne pas inclure les dates sans message, je veux m'assurer que les message.count
est fixé à zéro pour ces jours-là.
Ce que j'ai fait jusqu'à présent : J'ai extrait la partie jour du calendrier de message.date
en faisant :
df$calendar.day<-as.POSIXct(strptime(substr(df$message.date,1,10),"%Y-%m-%d",tz="CST6CDT"))
> head(df$calendar.day)
[1] "2011-07-17 CDT" "2011-07-18 CDT" "2011-07-19 CDT"
À partir de là, je peux générer une liste de toutes les dates du calendrier dans la plage de dates : daterange <- seq(min(df$calendar.day), max(df$calendar.day), by="day")