R从具有时间字段的日期开始按小时聚合数据帧

Sev*_*yns 3 r lubridate dplyr

我对R比较陌生,但我对Excel和T-SQL非常熟悉.

我有一个简单的数据集,它有一个带有时间的日期和一个与之相关的数值.我想要做的是总结当天的数字值.我在R中找到了一些用于处理时间类型的资源,但是我希望找到类似于提供excel的解决方案(我可以调用一个函数并传入我的日期/时间数据并让它返回小时当天).

任何建议将不胜感激 - 谢谢!

npj*_*pjc 7

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))
Run Code Online (Sandbox Code Playgroud)

分解:

DateTime(字符)的列转换为格式化的时间,然后使用hour()from 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
Run Code Online (Sandbox Code Playgroud)

group_by(hour_of_day)套组在其mean(Value)经由计算中的summarise(...)呼叫.

这给出了结果:

  hour_of_day meanValue
1          12      22.5
2          13      32.0
Run Code Online (Sandbox Code Playgroud)