Сначала конвертировать ваши даты в даты-времени класса с использованием asPOSIXct
df = data.frame(x = c("2012-03-01T00:05:55+00:00", "2012-03-01T00:06:23+00:00",
"2012-03-01T00:06:52+00:00"))
df$times = as.POSIXct(df$x, format = "%Y-%m-%dT00:%H:%M+%S")
Затем вытяните только часть часа, используя format
df$hour = format(df$times, '%H')
Это дает вам:
x times hour
1 2012-03-01T00:05:55+00:00 2012-03-01 05:55:00 05
2 2012-03-01T00:06:23+00:00 2012-03-01 06:23:00 06
3 2012-03-01T00:06:52+00:00 2012-03-01 06:52:00 06
Или вы можете извлечь дату и час с помощью:
df$date_hour = format(df$times, '%Y-%m-%d:%H')
для более Infor см ?strftime
он говорит «Спецификация преобразования введенный%, обычно за которым следует одна буква или O или E, а затем одна буква. Любой символ в строке формата, не являющийся частью спецификации преобразования, интерпретируется буквально (и %% дает%). Широко реализуемые спецификации преобразования включают: ...% H Часы в виде десятичного числа (00-23). В качестве специальных строк исключений, таких как 24:00:00 принимаются для ввода, так как ISO 8601 позволяет это.»
Теперь вы можете делать любые aggregartion вы хотите использовать что-то вроде plyr::ddply
library(plyr)
ddply(df, .(hour), nrow)
hour V1
1 05 1
2 06 2
или
ddply(df, .(date_hour), nrow)
date_hour V1
1 2012-03-01:05 1
2 2012-03-01:06 2
Просьба выполнить поиск по функциям времени R. Определите, что такое «почасовой временной ряд». Предоставьте «данные» для агрегации и укажите агрегирующие функции. –