(因为我没有足够的积分来评论)
我想指出,埃里克的回答不会按年区分平均每周价格。因此,如果您对独特的周感兴趣(2012 年第 1 周!= 2015 年第 1 周),您将需要做额外的工作来按独特的周分组。
df <- data.frame( Dates = c("2010-1-1", "2010-1-2", "2015-01-3"),
Price = c(50, 20, 40) )
Dates Price
1 2010-1-1 50
2 2010-1-2 20
3 2015-01-3 40
为了保持数据框整洁,我建议将日期转换为 POSIX 格式,然后对数据框进行排序:
library(lubridate)
df <- df %>%
mutate(Dates = lubridate::parse_date_time(Dates,"ymd")) %>%
arrange( Dates )
按独特的周分组:
df <- df %>%
group_by( yw = paste( year(Dates), week(Dates)))
然后变异和解组。
按独特的月份分组:
df <- df %>%
group_by( ym = paste( year(Dates), month(Dates)))
并变异和解组。