【问题标题】:Combine information from hi-resolution time series with another with daily information将来自高分辨率时间序列的信息与另一个与每日信息相结合
【发布时间】:2015-06-06 04:10:32
【问题描述】:

我有大约 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?

【问题讨论】:

    标签: r time-series dplyr


    【解决方案1】:

    使用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
    

    【讨论】:

    • 哇,这太完美了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 2017-05-07
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多