你可以使用
聚合
的
公式
。但是在此之前,你应该正确创建一个
小时
变量。
dat$hour <- as.POSIXlt(dat$Date)$hour
aggregate(.~hour,data=dat,sum)
这里是一个例子:
Lines <- "Date,c1,c2,c3
06/25/2013 12:01,0,1,1
06/25/2013 12:08,-1,1,1
06/25/2013 12:48,0,1,1
06/25/2013 12:58,0,1,1
06/25/2013 13:01,0,1,1
06/25/2013 13:08,0,1,1
06/25/2013 13:48,0,1,1
06/25/2013 13:58,0,1,1
06/25/2013 14:01,0,1,1
06/25/2013 14:08,0,1,1
06/25/2013 14:48,0,1,1
06/25/2013 14:58,0,1,1"
library(zoo)
z <- read.zoo(text = Lines, header = TRUE, sep = ",",
index=0:1,tz='',
format = "%m/%d/%Y %H:%M")
dat <- data.frame(Date = index(z),coredata(z))
dat$hour <- as.POSIXlt(dat$Date)$hour
aggregate(.~hour,data=dat,sum)
hour Date c1 c2 c3
1 12 5488624500 -1 4 4
2 13 5488638900 0 4 4
3 14 5488653300 0 4 4