【问题标题】:quantile & aggregate on zoo object in RR中动物园对象的分位数和聚合
【发布时间】:2015-02-16 06:54:32
【问题描述】:

我有一个看起来像 zoo 的对象

library(zoo)
library(lubridate)
TimeStamp=seq(dmy("01/01/2002"), dmy("17/12/2014"), by="day")
Dummy= rnorm(length(TimeStamp))
Temp=zoo(Dummy,TimeStamp)

我正在尝试计算一年中每一天的 5%、33%、67% 和 95% 的百分位数/分位数,以创建一个“标准”。 因此,对于 01/01,我希望根据我在数据集中对 1 月 1 日的所有观察结果获得 4 个分位数值。每天都一样。

现在我正在使用它:

aggregate(Temp ~ day(index(Temp)) + month(index(Temp)), FUN = 'quantile')

问题是使用这个函数我不确定quantile函数返回什么值。

有什么建议吗?

【问题讨论】:

    标签: r aggregate quantile


    【解决方案1】:

    您需要学习如何阅读帮助页面(有时您需要了解查看哪个帮助页面,正如 @GGrothendeick 刚刚指出的那样)。我可能(确实)认为第一页会起作用,但我错了:

     ?aggregate.zoo     # 
     ?aggregate.formula # fortunately, they are the same w.r.t the dots-arg
    

    帮助页面有一个用法部分:

    ## S3 method for class 'zoo'
    aggregate(x, by, FUN = sum, ..., regular = NULL, frequency = NULL)
    ## S3 method for class 'formula'
    aggregate(formula, data, FUN, ...,
              subset, na.action = na.omit)
    

    这样..., 会将任何参数传递给quantile 函数。 (从页面上不清楚输入字符名称是否可以接受,但如果你没有收到错误,那么你已经测试过了。分位数函数:

      ?quantile
    

    ...有一个用法部分:

    ## Default S3 method:
    quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,
             names = TRUE, type = 7, ...)
    

    因此,您需要提供一个与您想要的水平相匹配的“概率”参数,因为此时您将获得默认水平:最小值、第 25 个百分位、中值、第 75 个百分位和最大值。所以试试:

    aggregate(Temp ~ day(index(Temp)) + month(index(Temp)), 
              FUN = 'quantile', probs=c(5, 33, 67, 95)/100 )
    

    回想起来,您提供的公式会成功似乎有点编程奇迹:我认为我们将按照 aggregate 的“动物园”帮助页面中的示例来使用它:

     str( aggregate(Temp,  time(Dummy), 
                FUN = 'quantile', probs=c(5, 33, 67, 95)/100 ) )
    
    ‘zoo’ series from 1 to 4734
      Data: num [1:4734, 1:4] 0.235 -1.435 -0.922 -0.542 -1.151 ...
     - attr(*, "dimnames")=List of 2
      ..$ : NULL
      ..$ : chr [1:4] "5%" "33%" "67%" "95%"
      Index:  num [1:4734] 1 2 3 4 5 6 7 8 9 10 ...
    

    【讨论】:

    • 响应顶部讨论的帮助页面是zoo方法,但底部实际使用的方法是公式方法。
    • 想到aggregate.formula应该能够接受整个动物园对象名称作为LHS的解析,这似乎很奇怪。
    猜你喜欢
    • 2011-12-14
    • 1970-01-01
    • 2012-02-27
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    相关资源
    最近更新 更多