将每隔 30 分钟收集的数据舍入为设置的 30 分钟间隔
Posted
技术标签:
【中文标题】将每隔 30 分钟收集的数据舍入为设置的 30 分钟间隔【英文标题】:Rounding data collected at changing 30 min intervals into set 30 min intervals 【发布时间】:2019-04-12 07:56:58 【问题描述】:我有一个数据集,其中在四年内每隔 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”等...
我想应用一些方法,将数据“四舍五入”成设置的 30 分钟间隔,这些间隔在所有四年中都是一致的,例如: “2015-08-01 09:00:00、2015-08-01 09:30:00、2015-08-01 10:00:00”等
谢谢。
【问题讨论】:
【参考方案1】: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 分钟间隔的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法将时间戳向上或向下舍入到最接近的 30 分钟间隔?