过去一年我有一个非常大的数据集(即测量值)。以1分钟的间隔收集数据集。我意识到1分钟间隔的差异大于系统误差。所以,我想要获取每1小时收集的测量数据。
如何在2015-07-08 02:30:00,2015-07-08 04:30:00,等等获取测量结果?
数据集如下所示:
timestamp tr ts
1 2015-07-08 02:29:00 1938.23 1978.62
2 2015-07-08 02:30:00 1936.74 1979.25
3 2015-07-08 02:31:00 1937.14 1978.99
4 2015-07-08 02:32:00 1937.66 1978.83
5 2015-07-08 02:33:00 1937.19 1979.15
6 2015-07-08 02:45:00 1937.00 1979.00
7 2015-07-08 02:46:00 1937.75 1979.29
8 2015-07-08 02:47:00 1937.84 1978.44
9 2015-07-08 02:48:00 1937.47 1979.17
10 2015-07-08 02:49:00 1937.82 1978.68
11 2015-07-08 02:50:00 1937.55 1979.60
12 2015-07-08 02:51:00 1937.55 1979.13
13 2015-07-08 02:52:00 1937.65 1979.12
14 2015-07-08 02:53:00 1937.56 1978.28
15 2015-07-08 02:54:00 1937.38 1978.99
16 2015-07-08 02:58:00 1937.86 1978.61
17 2015-07-08 02:59:00 1937.78 1978.85
18 2015-07-08 03:00:00 1937.71 1978.68
19 2015-07-08 03:01:00 1937.14 1979.04
20 2015-07-08 03:02:00 1936.86 1979.43
非常感谢。
答案 0 :(得分:2)
特别是当你有一个大型数据集时,我强烈推荐data.table
(速度和可用性)。
data.table
- 解决方案就是这样的(我假设您想要获得半小时的值而不是过去一小时的平均值):
library(data.table)
dat <- data.table(df) # convert data.frame to data.table
# if timestamp is not POSIXct
# dat[, timestamp := as.POSIXct(timestamp)] # or use the package fasttime
# filter for entries where the time is half past.
filtered.dat <- dat[format(timestamp, "%M") == 30]
这对你有帮助吗?