我在 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)
我有一组几年(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)