2017-02-12 70 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