處理多個輸入
你在一家委外公司擔任薪資分析師。每個月你都會收到薪資名單上的員工資料。現在你被要求撰寫平行的 R 程式碼,計算每日的總支出。
你的工作環境裡有兩個清單 ls_hours 和 ls_rates。兩者各有 30 個元素,分別對應該月的每一天。ls_hours 的每個元素包含當天每位員工的工時,ls_rates 的每個元素則包含對應的時薪。你也有一個函式 calc_payout(),它接受兩個引數 hours 和 rates。
calc_payout <- function (hours, rates) paste0("$", sum(hours * rates))
你需要使用 furrr 套件中合適的函式,將這個計算以平行方式執行。furrr 套件已為你載入。
本練習屬於課程
R 平行程式設計
練習說明
- 使用可同時處理多個輸入的
future_map()變體來進行迴圈。 - 將
ls_hours和ls_rates結合起來。 - 在該
future_map()變體中指定要使用的函式為calc_payout()。 - 將計畫恢復為循序(sequential)模式。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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
___(___)