2012-01-17 48 views
2

我有一個動物園的時間序列如下:截斷動物園時間序列最近10分鐘

>> head(ww) 
(11/22/08 11:37:00) (11/22/08 12:07:00) (11/22/08 12:22:00) (11/22/08 12:37:00) 
      0.087114   0.055422   0.055250   0.059483 
(11/22/08 12:52:00) (11/22/08 13:07:00) 
      0.057896   0.061808 

正如你所看到的,時間是11:37,12:07,12:22等我會喜歡將這些時間更改爲十分鐘的整數倍 - 例如XX:10,XX:20。在這種情況下,11:37會變成11:40,12:07會變成12:10,12:22會變成12:20。

我已經找到了如何將其聚集到最近分鐘:

wholemin <- function(x) trunc(x, units="minutes") 
result = aggregate(r, wholemin, head, 1) 

但我不能用trunc聚集到超過秒,分鐘,小時等什麼等

應該如何我去做這個?

爲了便於示例中,dput(head(ww)輸出低於:

structure(c(0.087114, 0.055422, 0.05525, 0.059483, 0.057896, 
0.061808), index = structure(c(14205.4840277778, 14205.5048611111, 
14205.5152777778, 14205.5256944444, 14205.5361111111, 14205.5465277778 
), format = structure(c("m/d/y", "h:m:s"), .Names = c("dates", 
"times")), origin = structure(c(1, 1, 1970), .Names = c("month", 
"day", "year")), class = c("chron", "dates", "times")), class = "zoo") 

回答

4

嘗試這種情況:

to10 <- function(tt) trunc(tt + as.numeric(times("00:05:00")), units = "00:10:00") 
aggregate(z, to10, mean) 

並查看?trunc.times?aggregate.zoo的例子。

+0

謝謝。這就是我一直在尋找的。你可能想指出'read.zoo()'默認情況下將所有因素都視爲因子,因此將數據轉換爲數字確實有幫助。 – 2013-03-18 18:54:58

+0

不適合我。例如,這給了我數字數據和索引:'str(read.zoo(text =「1 1」))''。 – 2013-03-18 20:48:29

相關問題