R从带有时间字段的日期开始按小时聚合数据框
R aggregate a dataframe by hours from a date with time field
我对 R 比较陌生,但我对 Excel 和 T-SQL 非常熟悉。
我有一个简单的数据集,它有一个带时间的日期和一个与之关联的数值。我想做的是按一天中的小时汇总数值。我找到了一些在 R 中处理时间类型的资源,但我希望找到一个类似于 excel 提供的解决方案(我可以在其中调用一个函数并传入我的 date/time 数据并设置 return 一天中的小时数)。
如有任何建议,我们将不胜感激 - 谢谢!
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
(字符)的列转换为格式化时间,然后使用 lubridate
中的 hour()
提取该小时值并将其放入名为 [=16= 的新列中].
> 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)
设置在 summarise(...)
调用中计算 mean(Value)
的组。
这给出了结果:
hour_of_day meanValue
1 12 22.5
2 13 32.0
我对 R 比较陌生,但我对 Excel 和 T-SQL 非常熟悉。
我有一个简单的数据集,它有一个带时间的日期和一个与之关联的数值。我想做的是按一天中的小时汇总数值。我找到了一些在 R 中处理时间类型的资源,但我希望找到一个类似于 excel 提供的解决方案(我可以在其中调用一个函数并传入我的 date/time 数据并设置 return 一天中的小时数)。
如有任何建议,我们将不胜感激 - 谢谢!
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
(字符)的列转换为格式化时间,然后使用 lubridate
中的 hour()
提取该小时值并将其放入名为 [=16= 的新列中].
> 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)
设置在 summarise(...)
调用中计算 mean(Value)
的组。
这给出了结果:
hour_of_day meanValue
1 12 22.5
2 13 32.0