5

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

> 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 

这是怎么回事?

4

1 回答 1

8

这是因为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
于 2012-12-09T23:03:16.417 回答