[R] Calculate daily means from 5-minute interval data

Rich Shepard r@hep@rd @end|ng |rom @pp|-eco@y@@com
Thu Sep 2 20:42:41 CEST 2021


On Thu, 2 Sep 2021, Rich Shepard wrote:

> If I correctly understand the output of as.POSIXlt each date and time
> element is separate, so input such as 2016-03-03 12:00 would now be 2016 03
> 03 12 00 (I've not read how the elements are separated). (The TZ is not
> important because all data are either PST or PDT.)

Using this script:
discharge <- read.csv('../data/water/discharge.dat', header = TRUE, sep = ',', stringsAsFactors = FALSE)
discharge$sampdate <- as.POSIXlt(discharge$sampdate, tz = "",
                                  format = '%Y-%m-%d %H:%M',
                                  optional = 'logical')
discharge$cfs <- as.numeric(discharge$cfs, length = 6)

I get this result:
> head(discharge)
              sampdate    cfs
1 2016-03-03 12:00:00 149000
2 2016-03-03 12:10:00 150000
3 2016-03-03 12:20:00 151000
4 2016-03-03 12:30:00 156000
5 2016-03-03 12:40:00 154000
6 2016-03-03 12:50:00 150000

I'm completely open to suggestions on using this output to calculate monthly
means and sds.

If dplyr:summarize() will do so please show me how to modify this command:
disc_monthly <- ( discharge
         %>% group_by(sampdate)
         %>% summarize(exp_value = mean(cfs, na.rm = TRUE))
because it produces daily means, not monthly means.

TIA,

Rich



More information about the R-help mailing list