Home > OS >  How to calculate yearly/monthly average, max value, min value etc of a Column based on the date (mon
How to calculate yearly/monthly average, max value, min value etc of a Column based on the date (mon

Time:09-25

How to calculate yearly/monthly average, max value, min value etc. of a Column based on the date (month/day/year) on another column in R. My date frame contains daily, monthly and hourly precipitation and discharge for dates starting from Jan 1 ,2013 till December 31, 2019

  | Date     |precipitation  | Stream A Discharge |  Stream B Discharge | 
----------------------------------------------------------------------------
1  | 1/1/2013 |  0.35        |  2.35              |   3.83              | 
 

For example how would I calculate the average/mean/max/min precipitation or discharge of stream A of the year 2013 or for January 2013, or December 2014 in R?

CodePudding user response:

Change the data to date class, extract year from it and using across you can calculate multiple statistics for multiple columns.

library(dplyr)
library(lubridate)

df %>%
  mutate(Date = dmy(Date), 
         year = year(Date), 
         year_month = format(Date, '%Y-%m')) %>%
  group_by(year) %>%
  #If you need for every month
  #group_by(year_month) %>%
  summarise(across(precipitation:Stream.B.Discharge, 
            list(mean = mean, min = min, max = max)))
  • Related