簡體   English   中英

R從具有時間字段的日期開始按小時聚合數據幀

[英]R aggregate a dataframe by hours from a date with time field

我對R比較陌生,但我對Excel和T-SQL非常熟悉。

我有一個簡單的數據集,它有一個帶有時間的日期和一個與之相關的數值。 我想要做的是總結當天的數字值。 我在R中找到了一些用於處理時間類型的資源但是我希望找到類似於提供excel的解決方案(我可以調用一個函數並傳入我的日期/時間數據並讓它返回小時當天)。

任何建議將不勝感激 - 謝謝!

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()來拉出該小時值並將其放入名為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)設置通過summarise(...)調用計算mean(Value)的組。

這給出了結果:

  hour_of_day meanValue
1          12      22.5
2          13      32.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM