【问题标题】:15min time aggregation in RR中的15分钟时间聚合
【发布时间】:2010-09-02 17:23:19
【问题描述】:

我在 R 中有一个 zoo 系列。我可以在 chron 或 POSIXct 索引之间进行选择。

如何聚合到 15 分钟,每 15 分钟取最后一个元素?

我知道如何每天汇总,写作 as.Date,但不知道如何每 15 分钟汇总一次。

谢谢。

【问题讨论】:

  • @user425895:帮我们大家一个忙,实际投票并接受答案。就目前而言,你不是一个好的 SO 公民。

标签: r time


【解决方案1】:

如果我记得,这记录在zoo 小插图中。你看过吗?

基于zoo 构建的xts 包具有辅助函数——具体参见help(to.period)to.minutes15 函数。

【讨论】:

    【解决方案2】:

    根据您的需要,这里有几种可能性。两者都使用了chron 包中的trunc.timesaggregate.zoo 解决方案采用每 15 分钟间隔内的最后一个值,并使用 15 分钟间隔开始时的时间对其进行标记,因此使用的时间为:00:00:0000:15:0000:30:0000:45:00duplicated 解决方案使用相同的值,但使用在数据中实际找到的最后一次标记它们。在这两种情况下,我们只包括存在数据的区间。

    在 (1) ?aggregate.zoo 中有更多 aggregate.zoo 的示例,(2) 所有三个动物园小插曲都有示例,以及 (3) 在 r-help 档案中搜索单词 aggregate.zootrunc找到更多的例子。

    library(zoo)
    library(chron)
    z <- zoo(1:10, chron(1:10/(24*13)))
    
    # 1. last value in each 15 minute interval 
    # using time at which interval begins
    
    aggregate(z, trunc(time(z), "00:15:00"), tail, 1)
    
    # 2. last value in each 15 minute interval 
    # time of last point in data within interval
    
    z[!duplicated(trunc(time(z), "00:15:00"), fromLast = TRUE)]
    

    【讨论】:

    • 嗨我需要的不是“间隔开始的时间”也不是“间隔内数据最后一点的时间”而是“间隔结束的时间”一个类比是......我需要上限地板或截断
    • 我想到了一个可能的解决方案:增加 14 分钟,然后截断结果。你怎么看? (我想我的秒数是 00)当年份改变并添加一些闰秒时会发生问题。
    • 是的,delta
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2021-07-18
    • 2021-12-12
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多