一种选择是使用包 Lubridate:
library(lubridate)
timeseries <- read.csv("project1.csv", sep=",", header=T, dec=".")
timeseries[,1] <- mdy_hm(timeseries[,1])
日期已转换为 POSIXct,在 R 中得到广泛认可。接下来,日期将四舍五入到最接近的单位。例如,可以将单位设置为:小时、天、月等。四舍五入的日期存储在新的 data.frame 中,然后与原始 data.frame 连接。最后一步是将值聚合到四舍五入的日期。
rdate <- ceiling_date(x=timeseries[,1],unit="hour")
temp <- cbind(rdate,timeseries)
timeseries_hour <- aggregate(x=temp[3],by=list(temp[,1]),FUN=sum)
部分结果:
head(timeseries_hour)
Group.1 Ppt..Amount
1 1996-05-02 01:00:00 0.03
2 1996-05-02 02:00:00 0.02
3 1996-05-02 05:00:00 0.01
4 1996-05-02 06:00:00 0.04
5 1996-05-02 07:00:00 0.38
6 1996-05-02 08:00:00 0.13