【问题标题】:Aggregate in time intervals按时间间隔聚合
【发布时间】:2012-07-16 12:35:43
【问题描述】:

我想分析R中的一些测量数据

> head(data)
                 Time     Val
1 2011-12-01 10:11:21      20
2 2011-12-01 10:11:24       0
3 2011-12-01 10:11:24      30
4 2011-12-01 10:11:25       0
5 2011-12-01 10:11:29      80
6 2011-12-01 10:13:31       0

我对 Zoo 和 as.Date 都进行了试验,但都没有得到以下问题的答案:

  1. 如何绘制一天 24 小时内每分钟的直方图?
  2. 如何计算和绘制每一天的平均值(不是一个月中的一天,而是一天中的一天)?

【问题讨论】:

    标签: r time-series


    【解决方案1】:

    获取有关?aggregate?cut.Date 的帮助。

    类似:

    aggregate (z, format (index (z), "%M"), sum)
    

    aggregate (z, cut (as.Date (index (z)), breaks="day"), mean)
    

    【讨论】:

      【解决方案2】:

      plyr 包非常适合这项任务。这里有一些指南:http://plyr.had.co.nz 您应该为要分别分析的每个周期分配一个因子变量的值 - 我不知道快捷方式,因此您可以尝试将 substr() 应用于您的 Time 变量。然后使用 plyr 对每个组应用不同的函数(如 mean())。对于绘图,您可以使用来自同一作者或格子的 ggplot 包。

      【讨论】:

      • 我是 R 新手(今天作为 Comp. Sc. 学习它),我觉得 plyr 似乎无法满足我的需求?
      • 我觉得它非常直观(比 ggplot 更直观),并且 Hadley 指南中的示例非常具有说明性。如果你有 20 分钟的时间来解决这个问题,那就花时间阅读文件,这样你就可以很好地应对未来出现的任何问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 2014-03-09
      • 1970-01-01
      相关资源
      最近更新 更多