2

数据示例

我有以下数据是雨量计读数的时间序列集合。时间戳是每次雨量计增加计数的时间,而体积是添加到桶中的雨水量。我需要将数据汇总到几个不同的类别中,即每小时、6 小时、每天、每周添加到桶中的总降雨量。我尝试使用围绕 StachOverflow 发布的其他一些数据聚合方法,但它们假定正常的收集间隔。我对 R 不是很好,所以如果这是对已经发布的代码的超级简单编辑,请原谅我。

我知道数据是来自 excel 的快照,但这只是为了在这个论坛中为了视觉目的而很好地格式化,因为我不知道如何发布表格

附件是数据的CSV

数据文件在这里

4

1 回答 1

2

一种选择是使用包 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
于 2013-04-09T17:18:50.537 回答