У меня есть набор данных о затратах на развертывание мобильной инфраструктуры 5G для обслуживания различных областей с почтовыми индексами:
observation <- c(1:10)
pop.d.rank <- c(1:10)
cost <- c(101:110)
all <- data.frame(observation,pop.d.rank,cost)
Затем я хочу увидеть, при определенной сумме ежегодных инвестиций, сколько людей может быть охвачено определенной суммой доступного капитала. Допустим, годовой.инвестиционный выглядит следующим образом:
annual.investment <- 500
Ниже я использовал dplyr, чтобы попытаться распределить эти ежегодные инвестиции по различным областям геотипа в данных на основе переменной стоимости:
all <- all %>% group_by(pop.d.rank) %>%
mutate(capital_allocated.5G = diff(c(0, pmin(cumsum(cost), annual.investment)))) %>%
mutate(capital_percentage.5G = capital_allocated.5G / cost * 100)
Однако проблема здесь в том, что годовая сумма инвестиций в размере 500 распределяется каждый раз по каждому наблюдению в данных, а не как валовая сумма по всем наблюдениям. Любые предложения о том, как я могу изменить этот код, чтобы сделать это?
Вот как должны выглядеть данные после этого:
observation <- c(1:10)
pop.d.rank <- c(1:10)
cost <- c(101:110)
capital_allocated.5G <- c(101, 102, 103, 104, 90, 0, 0, 0, 0, 0)
capital_percentage.5G <- c(100, 100, 100, 100, 86, 0, 0, 0, 0, 0)
example.output <- data.frame(observation,pop.d.rank,cost, capital_allocated.5G, capital_percentage.5G)