【问题标题】:Sum of values within a week一周内的值总和
【发布时间】:2012-11-27 09:11:03
【问题描述】:

我想按周对帧的每一列中的值求和。我可以做平均数,但由于某种原因总和不起作用:

> zoo.data <- zoo(data.frame(x=11:20,y=1:10),as.Date(1:10,origin="1970-01-01"))
> apply.weekly(zoo.data, mean)
            x y
1970-01-04 12 2
1970-01-11 17 7
> apply.weekly(zoo.data, sum)
1970-01-04 1970-01-11 
        42        168 

发生了什么事?

【问题讨论】:

    标签: r time-series xts zoo


    【解决方案1】:

    这是由于 xts 作者决定添加一个mean.xts 方法来模仿基础 R 的旧行为(本质上是colMeans)。 mean.xts 现在在 xts 对象而不是 mean.default 上调度,apply.weekly 在内部临时将您的 zoo 对象转换为 xts

    R> apply.weekly(zoo.data, mean)
                x y
    1970-01-04 12 2
    1970-01-11 17 7
    R> apply.weekly(zoo.data, mean.default)
    1970-01-04 1970-01-11 
             7         12 
    

    但是,我认为这是你想要做的:

    R> apply.weekly(zoo.data, colMeans)
                x y
    1970-01-04 12 2
    1970-01-11 17 7
    R> apply.weekly(zoo.data, colSums)
                 x  y
    1970-01-04  36  6
    1970-01-11 119 49
    

    【讨论】:

    • +1,但请注意,目前这仅适用于 R-Forge 上的 xts。 mean.xts 未在 CRAN 上的 xts_0.8-8 中注册。
    • @JoshuaUlrich apply.weekly(zoo.data, var)apply.weekly(zoo.data, sd) 怎么样?一直在寻找他们为什么不像mean那样工作
    • @JoshuaUlrich 知道了stackoverflow.com/a/9242189/5823517。顺便说一句,很棒的包裹。
    猜你喜欢
    • 1970-01-01
    • 2021-12-16
    • 2021-12-27
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 2010-10-21
    • 1970-01-01
    相关资源
    最近更新 更多