【发布时间】:2021-02-22 17:00:44
【问题描述】:
我有 2006 年到 2012 年间奥地利的失业率水平。我想将每年的失业率除以之前三年的平均值。例如,变量将显示在 2010 年:2010 年的失业率除以 2007、2008 和 2009 年的失业率平均值。有没有办法在 dplyr 中做到这一点?
我知道以下代码将每年除以变量的前三年。但我不知道如何处理之前的 3 年:
mydata %>%
mutate(
unemp_3 = unemp - mean(unemp[1:3])
)
这是我的数据:
structure(list(cntry = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L
), .Label = "Austria", class = "factor"), unemp = c(5.2, 4.9,
4.1, 5.3, 4.8, 4.6, 4.9), year = 2006:2012), row.names = c(NA,
-7L), groups = structure(list(cntry = structure(1L, .Label = "Austria", class = "factor"),
.rows = structure(list(1:7), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = 1L, class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
【问题讨论】: