将来自高分辨率时间序列的信息与另一个具有日常信息的信息相结合

Combine information from hi-resolution time series with another with daily information

我的测量数据的分辨率大约为 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