R时间序列数据聚合非等时间步长

标签 r aggregate time-series

Example Of Data

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

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

附件是数据的 CSV

Data File Here

最佳答案

一个选项是使用 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

关于R时间序列数据聚合非等时间步长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15886907/

相关文章:

R - 在后台运行 source()

arrays - 根据维度名称聚合数组

r - 按时间间隔聚合一个数据帧与另一个数据帧

返回组的第一行

python - Pandas 索引缺失值

r - 函数的循环定义

r - 如何计算R(动物对象)中的自相关

python - Pandas 重采样时间序列向后计数(或反向重采样)

r - 调整 LASSO 模型并使用 tidymodels 进行预测

python - 具有不同形状的多个输入的 Keras TimeDistributed