如何在R中不使用循环计算一天的最大平均每小时值

时间:2015-08-04 22:30:20

标签: r

我有一天的分钟数据,我想找到最大小时平均值。它不必是小时(5:076:07也有效,这意味着我必须计算00:0001:00的平均值,{{1} }〜00:0101:0100:02 ......)。我可以使用除循环以外的任何东西吗?

1 个答案:

答案 0 :(得分:1)

如果x是一个时间向量,作为字符串,而y是您想要平均的数据,则可以执行以下操作:

x <- c("0:00", "0:01", "12:00", "12:05", "18:04", "18:05", "18:06", "18:07", "0:00", "0:01")
x <- gsub(":[0-9]{2,}", "", x ,perl=T)

y <- 1:length(x)

hourly.average <- aggregate(list(y=y), by=list(x=x), mean)

max.hourly.average <- max(hourly.average[,"y"])

所以你得到了

> hourly.average
   x   y
1  0 5.5
2 12 3.5
3 18 6.5

为了准确回答你的问题,

> max.hourly.average
[1] 6.5