开始使用免费开始使用

使用 clusterMap() 计算医疗支出

在一次医疗健康大会上,有人宣称全球医疗总支出正在上升。

您也参加了会议,并希望做一些粗略估算来验证这一说法。您找到了一份数据集,提供了 2000 年及以后的各年人均医疗支出和人口数据。您手头有两个列表:ls_popls_exp。它们分别包含各国的人口规模和人均医疗支出。

有一个函数 total_exp(),接收两个参数:pop(人口)和 exp_pc(人均医疗支出)。该函数返回以十亿美元计的总支出。您希望将此函数并行应用到 ls_popls_exp 上。已加载 parallel 包。

本练习是课程的一部分

R 并行编程

查看课程

练习说明

  • 并行地将 total_exp() 应用于 ls_popls_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))))))
编辑并运行代码