【发布时间】:2021-10-28 13:16:03
【问题描述】:
数据:
df <- data.frame(year = c(2018, 2019, 2020, 2021),
growth = c(0.05, 0.1, 0.08, 0.06),
size = c(100, NA, NA, NA))
year growth size
1 2018 0.05 100
2 2019 0.10 NA
3 2020 0.08 NA
4 2021 0.06 NA
我有2018 年的规模和随后几年的增长率。我的目标是将以后每一年的大小计算为size[i] = size[i-1] * (1 + growth[i])。我可以用 for 循环来做到这一点:
for (i in (2:nrow(df))) {
df$size[i] <- df$size[i-1] * (1 + df$growth[i])
}
year growth size
1 2018 0.05 100.000
2 2019 0.10 110.000
3 2020 0.08 118.800
4 2021 0.06 125.928
但我找不到dplyr 做同样事情的方式,例如mutate。希望听到你的想法。谢谢!
【问题讨论】: