我有大约1分钟分辨率的测量数据,但不规则。
timeSeries
time signal
1 2015-03-30 00:00:00 17.3
2 2015-03-30 00:01:00 16.2
3 2015-03-30 00:02:01 18.4
4 2015-03-30 00:04:03 17.7
在第二个数据帧中,我有每日信息。
dailyInfo
firstEvent yesterday
1 2015-03-28 17:01:43 2015-03-27 15:25:51
2 2015-03-29 17:04:55 2015-03-28 17:01:43
3 2015-03-30 16:59:03 2015-03-29 17:04:55
dailyInfo$firstEvent
是我的边界。我想做一些类似的事情
timeSeries %>%
group_by(between(time, dailyInfo$yesterday, dailyInfo$firstEvent))
在教程中,信息总是已经存在于一个数据帧中(例如iris %>% group_by(Species) %>% ...
)。
我的解决方法是计算每组边界之间的行数,然后复制firstEvent
条目,将其连接起来,并将结果向量作为新列放入timeSeries
中。
这不是很优雅,所以也许有人可以帮我如何使用dplyr?
使用cut
timeSeries %>%
mutate(interval = cut(time, dailyInfo$firstEvent)) %>%
group_by(interval)
或者直接在group_by
中计算间隔
timeSeries %>%
group_by(interval = cut(time, dailyInfo$firstEvent))
time signal interval
1 2015-03-30 00:00:00 17.3 2015-03-29 17:04:55
2 2015-03-30 00:01:00 16.2 2015-03-29 17:04:55
3 2015-03-30 00:02:01 18.4 2015-03-29 17:04:55
4 2015-03-30 00:04:03 17.7 2015-03-29 17:04:55