使用 clusterMap() 计算医疗支出
在一次医疗健康大会上,有人宣称全球医疗总支出正在上升。
您也参加了会议,并希望做一些粗略估算来验证这一说法。您找到了一份数据集,提供了 2000 年及以后的各年人均医疗支出和人口数据。您手头有两个列表:ls_pop 和 ls_exp。它们分别包含各国的人口规模和人均医疗支出。
有一个函数 total_exp(),接收两个参数:pop(人口)和 exp_pc(人均医疗支出)。该函数返回以十亿美元计的总支出。您希望将此函数并行应用到 ls_pop 和 ls_exp 上。已加载 parallel 包。
本练习是课程的一部分
R 并行编程
练习说明
- 并行地将
total_exp()应用于ls_pop和ls_exp的各个元素。 - 指定哪个列表的元素应传递给
total_exp()的pop参数。 - 同样,指定哪个列表应传递给
total_exp()的exp_pc参数。
交互式实操练习
通过完成这段示例代码来试试这个练习。
total_exp <- function (pop, exp_pc) {
sum(pop * exp_pc)/1e9
}
cl <- makeCluster(4)
# Apply total_exp using cl to multiple arguments
ls_total <- ___(___, ___,
# Specify first argument
pop = ___,
# Specify second argument
exp_pc = ___)
stopCluster(cl)
print(paste("Average yearly increase in USD billions:", round(mean(diff(unlist(ls_total))))))