时间依赖值计算

时间:2013-08-09 08:20:48

标签: r

嗨伙计们, 我有几个数据框,每个数据框由2列组成:

Date                   Value1
2013-07-03 16:05:00     1178
2013-07-03 16:10:00     1200
2013-07-03 16:15:00     1180
2013-07-03 16:20:00     1175
2013-07-03 16:25:00     1205
2013-07-03 16:30:00     1170
.....

换句话说,我每五分钟(整整一个月)测量一次Value1。我尝试过的(没有结果)是创建一个包含两列的新df,其中Value1的每小时均值。结果应该是:

Date                   Value1
2013-07-03 16:00:00     1180
2013-07-03 17:00:00     1210
.....

其中1178是16:00到17:00期间的Value1的平均值,因此一个.. 我将列日期格式化为日期

df$Date<-as.POSIXct(df$Date, "%Y/%m/%d %H:%M:%S", tz = "")

有快速的方法吗?

我也尝试使用动物园包:

zoo_df<-read.zoo(df, header=T, tz="GMT")
aggregate(zoo_df, as.Date, mean)

显然,函数as.Date完全适用于日常均值,是不是有类似的方法来做同样的小时均值?

1 个答案:

答案 0 :(得分:4)

使用时间序列包:

DF <- data.frame(Date=seq(from=as.POSIXct("2013-07-03 16:05:00", tz="GMT"),
                          to=as.POSIXct("2013-07-04 16:05:00", tz="GMT"),
                          by="5 min"),
                 Value1=1:289)

library(xts)
myTS <- zoo(DF[,2], DF[,1])

ep <- endpoints(myTS, "hours")
period.apply(myTS, INDEX=ep, FUN=mean)