【发布时间】:2017-02-18 23:07:56
【问题描述】:
我有一套为不同邮政编码地区推出 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)
【问题讨论】:
标签: r dplyr cumulative-sum