将以 30 分钟间隔更改为设定的 30 分钟间隔收集的数据四舍五入
Rounding data collected at changing 30 min intervals into set 30 min intervals
我有一个数据集,其中在四年期间以 30 分钟的间隔收集了测量值。然而,由于这些数据是在这么长的时间内收集的,因此记录仪器已经启动和停止了几次。数据仍以 30 分钟的间隔记录,但整个收集期间的间隔并不一致。
例如,假设我有 100 天的数据,其中间隔为:
“2015-08-01 09:03:00、2015-08-01 09:33:00、2015-08-01 10:03:00”等...
然后在短暂的间隔之后接下来的 50 天是这样的:
“2016-02-01 09:13:00、2016-02-01 09:43:00、2016-02-01 10:13:00”等...
我想应用一些东西 "round" 将数据设置为 30 分钟的间隔,这些间隔在所有四年中都是一致的,例如:
“2015-08-01 09:00:00、2015-08-01 09:30:00、2015-08-01 10:00:00”等
谢谢。
lubridate
有 floor_date
可以满足您的需求:
dates<-c("2016-02-01 09:13:00","2016-02-01 09:33:00")
floor_date(as_datetime(dates), unit="30 minutes")
[1] "2016-02-01 09:00:00 UTC" "2016-02-01 09:30:00 UTC"
当然,如果一个区间是 9:29 而下一个区间是 10:02,您将在 9:30 处有一个缺失值。鉴于您的数据的性质,不确定如何避免这种情况。
我有一个数据集,其中在四年期间以 30 分钟的间隔收集了测量值。然而,由于这些数据是在这么长的时间内收集的,因此记录仪器已经启动和停止了几次。数据仍以 30 分钟的间隔记录,但整个收集期间的间隔并不一致。
例如,假设我有 100 天的数据,其中间隔为: “2015-08-01 09:03:00、2015-08-01 09:33:00、2015-08-01 10:03:00”等...
然后在短暂的间隔之后接下来的 50 天是这样的: “2016-02-01 09:13:00、2016-02-01 09:43:00、2016-02-01 10:13:00”等...
我想应用一些东西 "round" 将数据设置为 30 分钟的间隔,这些间隔在所有四年中都是一致的,例如: “2015-08-01 09:00:00、2015-08-01 09:30:00、2015-08-01 10:00:00”等
谢谢。
lubridate
有 floor_date
可以满足您的需求:
dates<-c("2016-02-01 09:13:00","2016-02-01 09:33:00")
floor_date(as_datetime(dates), unit="30 minutes")
[1] "2016-02-01 09:00:00 UTC" "2016-02-01 09:30:00 UTC"
当然,如果一个区间是 9:29 而下一个区间是 10:02,您将在 9:30 处有一个缺失值。鉴于您的数据的性质,不确定如何避免这种情况。