我想按周在 R 中聚合一个数据框,我正在尝试使用 lubridate 来完成它。
date = as.Date(c('2006-05-02','2007-05-03','2006-05-04','2006-05-05','2006-05-08','2006-05-09'))
total = c(1,2,3,4,5,10)
df=data.frame(date, total)
我使用了 lubridate 包来执行以下操作;
df$wk = weeks(agg$date)
agg = aggregate(data=agg, total ~ date + variable , FUN=sum)
这似乎没有返回任何有效的东西。您可以将周转换为字符串,但随后您需要将周转换回正常的 R 日期。
df$wk = as.character(weeks(agg$date))
agg = aggregate(data=agg, total ~ date , FUN=sum)
这带来了另一个问题,日期现在是这样的字符串;
"113029d 0H 0M 0S"
我想ggplot
在数据框上使用agg
,所以我需要将此字符串转换为 ggplot 可以理解的内容。as.Date()
显然不起作用,似乎我可以将日期转换为 unix_timestamp 但这似乎我付出了太多努力。
如何将 lubridates 转换为正常的 R 日期以便我可以执行聚合?正常的 R 日期在aggregate
函数中工作得非常好,所以我想我宁愿只使用 lubridate 将日期合并为几周。