clusterMap() で医療費を計算する
最近の医療関連カンファレンスで、世界的に医療費の総額が増加しているという主張がありました。
あなたはその場に居合わせ、この主張をざっくり検証したいと考えています。2000年以降の一人当たり医療費と人口を提供するデータセットを用意しました。各国について、人口のリスト ls_pop と、一人当たり医療費のリスト ls_exp の2つがあります。
total_exp() は2つの引数 pop(人口)と exp_pc(一人当たり医療費)を取る関数で、米ドル換算の総支出(単位:10億)を返します。この関数を 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))))))