複数の入力を処理する
あなたはアウトソーシング企業の給与分析担当です。毎月、給与対象となる従業員のデータを受け取り、日ごとの総支払額を計算する並列 R コードを書くよう依頼されています。
ワークスペースには ls_hours と ls_rates の 2 つのリストがあります。どちらも月の各日に対応する 30 要素です。ls_hours の各要素にはその日の各従業員の勤務時間が、ls_rates の各要素には対応する時間給が入っています。さらに、hours と rates の 2 つの引数を取る関数 calc_payout() も用意されています。
calc_payout <- function (hours, rates) paste0("$", sum(hours * rates))
この計算を並列で実行するために、furrr パッケージの適切な関数を使ってください。furrr パッケージはすでに読み込まれています。
この演習はコースの一部です
R による並列プログラミング
演習の手順
- 複数の入力を受け取る
future_map()のバリアントを使ってループ処理してください。 ls_hoursとls_ratesを組み合わせます。future_map()のバリアントに関数calc_payout()を指定します。- シーケンシャルな plan に戻します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
plan(multisession, workers = 5)
# Use the correct future_map() variant
___(
# Combine ls_hours and ls_rates
___(___, ___),
# Specify the function to apply
___)
# Revert to sequential plan
___(___)