R aggregate a dataframe by hours from a date with time field

前端 未结 1 878
野性不改
野性不改 2021-01-03 08:31

I\'m relatively new to R but I am very familiar with Excel and T-SQL.

I have a simple dataset that has a date with time and a numeric value associated it. What I\'d

相关标签:
1条回答
  • 2021-01-03 09:01
    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))
    

    breakdown:

    Convert column of DateTime (character) into formatted time then use hour() from lubridate to pull out just that hour value and put it into new column named 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
    

    The group_by(hour_of_day) sets the groups upon which mean(Value) is computed in the via the summarise(...) call.

    this gives the result:

      hour_of_day meanValue
    1          12      22.5
    2          13      32.0
    
    0 讨论(0)
提交回复
热议问题