開始使用免費開始

處理多個輸入

你在一家委外公司擔任薪資分析師。每個月你都會收到薪資名單上的員工資料。現在你被要求撰寫平行的 R 程式碼,計算每日的總支出。

你的工作環境裡有兩個清單 ls_hoursls_rates。兩者各有 30 個元素,分別對應該月的每一天。ls_hours 的每個元素包含當天每位員工的工時,ls_rates 的每個元素則包含對應的時薪。你也有一個函式 calc_payout(),它接受兩個引數 hoursrates

calc_payout <- function (hours, rates) paste0("$", sum(hours * rates))

你需要使用 furrr 套件中合適的函式,將這個計算以平行方式執行。furrr 套件已為你載入。

本練習屬於課程

R 平行程式設計

檢視課程

練習說明

  • 使用可同時處理多個輸入的 future_map() 變體來進行迴圈。
  • ls_hoursls_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
___(___)
編輯並執行程式碼