開始使用免費開始

使用 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))))))
編輯並執行程式碼