2010-11-09 146 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