У меня есть фрейм данных (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))
Пожалуйста, помогите мне!
cumprod(1+df$"Growth Rate"/100)
дает вам совокупные ставки, которые необходимо умножить на начальное значениеOPS
. - person nicola   schedule 23.11.2018