按 R 中的百分比增量查找累积数
Find cumulative number by increment in percentage in R
我有一个数据框 (new_df) 如下(原始样本)
structure(list(Facility = c("ABE", "ABE", "ABE", "ABE", "ABE",
"ABE", "ABE", "ABE", "ABE", "ABE"), Year.x = c(2017, 2018, 2019,
2020, 2021, 2022, 2023, 2024, 2025, 2026), `Growth Rate` = c(25.375,
15.5865736124958, 14.5677592486103, 12.3473314371758, 10.253164556962,
6.67251975417032, 2.65906932573599, 1.55411655874191, 1.51211513936965,
1.5853074898301), Year.y = c(2016, 2016, 2016, 2016, 2016, 2016,
2016, 2016, 2016, 2016), OPS = c(7200, 0, 0, 0, 0, 0, 0, 0, 0,
0)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))
我想在 OPS 中输入值,使其显示累计时间百分比增量(增长率列)
以下是我正在尝试做的工作要点
对于(OPSNET 中的所有设施)
对于 OPSNET 中的每个设施,找到 2017 年至 2045 年的新运营数量,该数量基于每个设施每年的增长率。请记住,增长率以“GR”给出。
假设您想为设施“ABE”执行此操作。首先,将 7200 乘以 2017 年 (25) 的增长率,然后将其与 7200 相加,得到 9027。然后将 9027 乘以 2018 年 (15) 的增长率,并将其与 9027 相加,得到 10434。你这样做直到 2045 年。
我在下面尝试使用 dplyr,但我正在努力如何在使用
时以百分比增量进行倍增
我的看法:-
new_df <- new_df %>% arrange(Facility, Year.x) %>%
mutate(cumsum = cumsum(OPS))
请帮助我!
这个怎么样:
for(i in 2:nrow(a)){
if(a$Facility[i]==a$Facility[i-1]){
a$OPS[i] <- (a$OPS[i-1])*((a$`Growth Rate`[i-1]/100)+1)
}
}
我有一个数据框 (new_df) 如下(原始样本)
structure(list(Facility = c("ABE", "ABE", "ABE", "ABE", "ABE",
"ABE", "ABE", "ABE", "ABE", "ABE"), Year.x = c(2017, 2018, 2019,
2020, 2021, 2022, 2023, 2024, 2025, 2026), `Growth Rate` = c(25.375,
15.5865736124958, 14.5677592486103, 12.3473314371758, 10.253164556962,
6.67251975417032, 2.65906932573599, 1.55411655874191, 1.51211513936965,
1.5853074898301), Year.y = c(2016, 2016, 2016, 2016, 2016, 2016,
2016, 2016, 2016, 2016), OPS = c(7200, 0, 0, 0, 0, 0, 0, 0, 0,
0)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))
我想在 OPS 中输入值,使其显示累计时间百分比增量(增长率列) 以下是我正在尝试做的工作要点
对于(OPSNET 中的所有设施) 对于 OPSNET 中的每个设施,找到 2017 年至 2045 年的新运营数量,该数量基于每个设施每年的增长率。请记住,增长率以“GR”给出。
假设您想为设施“ABE”执行此操作。首先,将 7200 乘以 2017 年 (25) 的增长率,然后将其与 7200 相加,得到 9027。然后将 9027 乘以 2018 年 (15) 的增长率,并将其与 9027 相加,得到 10434。你这样做直到 2045 年。
我在下面尝试使用 dplyr,但我正在努力如何在使用
时以百分比增量进行倍增我的看法:-
new_df <- new_df %>% arrange(Facility, Year.x) %>%
mutate(cumsum = cumsum(OPS))
请帮助我!
这个怎么样:
for(i in 2:nrow(a)){
if(a$Facility[i]==a$Facility[i-1]){
a$OPS[i] <- (a$OPS[i-1])*((a$`Growth Rate`[i-1]/100)+1)
}
}