2010-11-09 97 views
3

我有一些使用POSIXct索引的动物园系列。R:按日期聚合POSIXct?

为了通过天聚集我已经试过这两种方式:

aggregate(myzoo,format((index((myzoo)),"%Y-%m-%d")),sum) 

aggregate(myzoo,as.Date(index(myzoo)),sum) 

我不知道为什么他们不给相同的输出。 myzoo系列周末被删除。 “as.Date way”似乎没问题,但“格式化方式”聚合在周末给我提供了数据。

为什么?

哪一个是正确的?

我甚至试过as.POSIXct(format(...))

+0

请问你有时间戳的数据?请提供一个数据样本。您可能在POSIXct对象中有时区正在转移您的数据。 – Shane 2010-11-09 15:13:41

+0

考虑'格式()'是一个糟糕且有损日期转换。不要使用它。这可能很方便,你可以对你选择的格式进行排序,但它不是日期的好表示。 – 2010-11-09 17:27:02

+0

嗨。反正呢?我不提供数据,因为我使用的是大文件,而且有点复杂。 – skan 2010-11-11 11:02:05

回答

2

正如我在我的评论中提到,你需要改变,包括时间和时区的时间戳的格式时,因为它可以在几天之间得到转移要小心。如果没有任何数据,很难说你到底是什么问题,但你也可以尝试apply.dailyxts

apply.daily(myzoo, sum) 

这里有一个工作示例:

> x <- zoo(2:20, as.POSIXct("2003-02-01") + (2:20) * 7200) 
> apply.daily(x, sum) 
> 2003-02-01 22:00:00 2003-02-02 16:00:00 
       65     144