按每周数据分组并使用 dplyr 在 R 中按月汇总

Group by weekly data and summarize by month in R with dplyr

我有一个 dataset 的每周抵押贷款利率数据。

数据看起来很简单:

library(tibble)
library(lubridate)

df <- tibble(
  Date = as_date(c("2/7/2008 ", "2/14/2008", "2/21/2008", "2/28/2008", "3/6/2008"), format = "%m/%d/%Y"),
  Rate = c(5.67, 5.72, 6.04, 6.24, 6.03)
)

我正在尝试将其分组并按月汇总。

这个blogpost and 不是我想要的,因为他们只是添加了月份列。

他们给我输出:

month         Date     summary_variable
2008-02-01  2008-02-07  5.67        
2008-02-01  2008-02-14  5.72        
2008-02-01  2008-02-21  6.04        
2008-02-01  2008-02-28  6.24    

我想要的输出(最好是一个月的最后一天):

Month  Average rate
2/28/2008   6
3/31/2008   6.1
4/30/2008   5.9

在上面的输出中我输入了随机数,而不是真正的计算。

我们可以将月份提取为列并按平均值进行分组

library(dplyr)
library(lubridate)
library(zoo)
df1 %>%
  group_by(Month = as.Date(as.yearmon(mdy(DATE)), 1)) %>% 
  summarise(Average_rate = mean(MORTGAGE30US))

-输出

# A tibble: 151 x 2
#   Month      Average_rate
#   <date>            <dbl>
# 1 2008-02-29         5.92
# 2 2008-03-31         5.97
# 3 2008-04-30         5.92
# 4 2008-05-31         6.04
# 5 2008-06-30         6.32
# 6 2008-07-31         6.43
# 7 2008-08-31         6.48
# 8 2008-09-30         6.04
# 9 2008-10-31         6.2 
#10 2008-11-30         6.09
# … with 141 more rows