2017-02-12 61 views
1

每小时间隔我有看起来像这样创建中的R

Count  Time 
    85  00:00:00 
    86  00:15:00 
    87  00:30:00 
    88  00:45:00 
    89  01:00:00 
    90  01:15:00 
    91  01:30:00 

的间隔是每15分钟,我想时间聚集到每60分钟,然后取平均计数为每一个数据帧小时。理想情况下,我的输出将在数据框中。谢谢

编辑:这可能只是平均每四行?如果有人知道如何去做这件事。

+0

@Db我结束了提取'-05:00'并希望能帮助您解决问题的清晰度 – Amanda

回答

1

DATA

df = structure(list(Count = 85:91, Time = c("00:00:00", "00:15:00", 
"00:30:00", "00:45:00", "01:00:00", "01:15:00", "01:30:00"), 
    hour = c("00", "00", "00", "00", "01", "01", "01")), .Names = c("Count", 
"Time", "hour"), row.names = c(NA, -7L), class = "data.frame") 

首先从时间提取小时,并用它作为分组变量来计算平均使用聚合

df$hour = sapply(strsplit(df$Time,":"), function(x) x[1]) 
aggregate(df[,'Count'], list(df$hour), mean) 
# Group.1 x 
#1  00 86.5 
#2  01 90.0 
+0

感谢您的意见。我上面使用的例子是我的df的一个非常小的片段。我已经有一个名为'df'的数据框,其中有'count'和'time'列,我不知道如何将代码的第一部分('df = structure(list ...')合并到我的代码 – Amanda

+0

中运行这个我得到这个错误:'错误strsplit(df $时间,“:”):非字符参数'你知道如何解决这个问题吗? – Amanda

+2

@Amanda - 'df $ Time < - as.character(df $ Time)'你的'Time'列是我猜测的一个因素,'strsplit'需要一个字符串来工作。 – thelatemail