我在 R 中有一组多年的每日时间序列数据

I have a set of daily time series data for several years in R

我有一组几年(20-70 年)的每日时间序列数据。日期在一列中采用 dd/mm/yyyy 格式,在另一列中采用每日流量值。我打算在R中对每年的最大流量进行排序和提取。

尝试其中一种聚合函数。

aggregate(flow~cbind(year=substr(year,7,11)), df1, FUN=max)
#   year flow
#1 2001   23
#2 2002   26

或者

library(data.table)
setDT(df1)[, list(flow= max(flow)) ,.(Year=substr(year, 7, 11))]  
#   Year flow
#1: 2001   23
#2: 2002   26

另一个选项是转换为 'Date' class 然后提取 'year' 部分。

library(lubridate)
setDT(df1)[, list(flow=max(flow)), .(Year= year(dmy(year)))] 

数据

 set.seed(24)
 df1 <- data.frame(year= c('26/05/2001', '27/05/2001', '02/01/2002', 
'03/01/2002'), flow= sample(20:30,4, replace=FALSE), stringsAsFactors=FALSE)