这个问题询问 R 中按时间段聚合的问题,pandas 称之为重采样。最有用的答案使用 XTS 包按给定时间段分组,应用一些函数,例如 sum() 或 mean()。
其中一条评论暗示在 lubridate 中有类似的东西,但没有详细说明。有人可以提供一个使用 lubridate 的惯用例子吗?我已经通读了几次 lubridate 小插图,并且可以想象 lubridate 和 plyr 的某种组合,但是我想确保没有更简单的方法让我错过了。
为了使示例更加真实,假设我想要从此数据集中向北行驶的每日自行车总数:
library(lubridate)
library(reshape2)
bikecounts <- read.csv(url("http://data.seattle.gov/api/views/65db-xm6k/rows.csv?accessType=DOWNLOAD"), header=TRUE, stringsAsFactors=FALSE)
names(bikecounts) <- c("Date", "Northbound", "Southbound")
数据如下所示:
> head(bikecounts)
Date Northbound Southbound
1 10/02/2012 12:00:00 AM 0 0
2 10/02/2012 01:00:00 AM 0 0
3 10/02/2012 02:00:00 AM 0 0
4 10/02/2012 03:00:00 AM 0 0
5 10/02/2012 04:00:00 AM 0 0
6 10/02/2012 05:00:00 AM 0 0