2014-05-01 52 views
2

骨料中的R數據幀我想通過時間來彙總數據,並創建等間隔的時間間隔:通過等距的時間間隔

date<- c(as.POSIXct("2011-08-08 21:00:00"), as.POSIXct("2011-08-08 21:26:00")) 
value<-c(1,2) 
dt<-data.frame(date, value) 

DT<-aggregate(cbind(dt$value),list(cut(dt$date, breaks="10 min")),sum) 

dt: 
2011-08-08 21:00:00 1 
2011-08-08 21:26:00 2 

DT: 
2011-08-08 21:00:00 1 
2011-08-08 21:20:00 2 

我想要什麼:

2011-08-08 21:00:00 1 
2011-08-08 21:10:00 NA 
2011-08-08 21:20:00 2 

反正是有做到這一點,而不使用動物園或xts?

回答

1

我假設你的最後一行你試圖避免使用軟件包。

與基礎R堅持,你可以嘗試tapply,但你的日期將成爲rownames(或names,如果你跳過data.frame步驟):

data.frame(value = tapply(cbind(dt$value), 
          list(cut(dt$date, breaks="10 min")), 
          sum)) 
#      value 
# 2011-08-08 21:00:00  1 
# 2011-08-08 21:10:00 NA 
# 2011-08-08 21:20:00  2