R агрегировать кадр данных по часам с даты с полем времени

Я относительно новичок в R, но хорошо знаком с Excel и T-SQL.

У меня есть простой набор данных, который имеет дату со временем и связанное с ним числовое значение. Что я хотел бы сделать, так это суммировать числовые значения по часам дня. Я нашел пару ресурсов для работы с типами времени в R, но я надеялся найти решение, похожее на предлагаемое excel (где я могу вызвать функцию и передать свои данные даты/времени, и она вернет час дня).

Любые предложения будут оценены - спасибо!


person Sevyns    schedule 27.04.2015    source источник
comment
можете ли вы опубликовать начальные данные и предполагаемый результат, чтобы вам лучше помогли. также см.: stackoverflow .com/questions/5963269/   -  person npjc    schedule 27.04.2015
comment
не могли бы вы опубликовать пример ваших данных.   -  person miles2know    schedule 27.04.2015
comment
Спасибо, ребята - конечно можете: Введите DateTime | Значение 14.03.2015 12:00:00 | 23 14.03.2015 13:00:00 | 24 15.03.2015 12:00:00 | 22 15.03.2015 13:00:00 | 40 Время вывода | Среднее значение 12:00:00 | 34 13:00:00 | 44   -  person Sevyns    schedule 27.04.2015


Ответы (1)


library(readr)
library(dplyr)
library(lubridate)


df <- read_delim('DateTime|Value
3/14/2015 12:00:00|23
3/14/2015 13:00:00|24
3/15/2015 12:00:00|22
3/15/2015 13:00:00|40',"|")

df %>% 
  mutate(hour_of_day = hour(as.POSIXct(strptime(DateTime, "%m/%d/%Y %H:%M:%S")))) %>% 
  group_by(hour_of_day) %>% 
  summarise(meanValue = mean(Value))

авария:

Преобразуйте столбец DateTime (символ) в форматированное время, затем используйте hour() из lubridate, чтобы извлечь только это значение часа и поместить его в новый столбец с именем hour_of_day.

> df %>% 
       mutate(hour_of_day = hour(as.POSIXct(strptime(DateTime, "%m/%d/%Y %H:%M:%S"))))
Source: local data frame [4 x 3]

            DateTime Value hour_of_day
1 3/14/2015 12:00:00    23          12
2 3/14/2015 13:00:00    24          13
3 3/15/2015 12:00:00    22          12
4 3/15/2015 13:00:00    40          13

group_by(hour_of_day) устанавливает группы, по которым вычисляется mean(Value) в вызове via summarise(...).

это дает результат:

  hour_of_day meanValue
1          12      22.5
2          13      32.0
person npjc    schedule 27.04.2015
comment
Спасибо, анамнез, это именно то, что я искал! Очень признателен! - person Sevyns; 27.04.2015