我有一个随时间变化的数据集(为期两个月)。深度之间的最小时间间隔小于1分钟,最大时间间隔为几天。在R中,我想基于每个观测值周围的6小时(或12小时)时间窗口计算深度的移动平均值(不是基于滞后/超前的观测次数的窗口)。
我尝试了zoo包,但我似乎无法让rollmean起作用。
我的数据的一个小子集是: https://www.dropbox.com/s/lhhrdgt2mxasc9v/fid57.depth.test1.csv 在R中是这样的:
任何建议都将不胜感激。
非常感谢!
我尝试了zoo包,但我似乎无法让rollmean起作用。
我的数据的一个小子集是: https://www.dropbox.com/s/lhhrdgt2mxasc9v/fid57.depth.test1.csv 在R中是这样的:
> str(my.data)
'data.frame': 51 obs. of 2 variables:
$ DateTime: POSIXct, format: "2013-08-07 06:49:46" "2013-08-07 06:55:17" "2013-08-07" 07:06:52" "2013-08-07 07:23:43" ...
$ Depth : num 28.6 31.7 29 35.2 33 ...
>head(my.data)
DateTime "Depth"
2013-08-07 06:49:46 28.58
2013-08-07 06:55:17 31.7
2013-08-07 07:06:52 29.02
2013-08-07 07:23:43 35.18
2013-08-07 07:27:14 32.98
2013-08-07 08:20:21 55.84
> dput(head(my.data))
structure(list(DateTime = structure(c(1375883386, 1375883717,
1375884412, 1375885423, 1375885634, 1375888821), class = c("POSIXct",
"POSIXt"), tzone = ""), Depth = c(28.58, 31.7, 29.02, 35.18,
32.98, 55.84)), .Names = c("DateTime", "Depth"), row.names = c(8481L,
8483L, 8484L, 8485L, 8487L, 8495L), class = "data.frame")
任何建议都将不胜感激。
非常感谢!
dput(head(my.data))
的输出添加到问题中。 - Matthew Lundbergrollapply
在这里不适用于由于窗口大小的变化,但是由于您正在寻找计算平均值,因此您应该能够想出跟踪滚动六小时窗口的快速算法。请参见此讨论。 - BrodieG