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

时间:2015-04-27 18:21:20

标签: r dplyr lubridate

我对R比较新,但我对Excel和T-SQL非常熟悉。

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

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

1 个答案:

答案 0 :(得分:6)

.navmenu-nav.dropdown-menu { position:relative; }

击穿:

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)的组。

这给出了结果:

summarise(...)