处理多个输入
您在一家外包公司担任薪酬分析师。每个月,您都会收到工资表中员工的数据。现在需要您编写并行 R 代码,计算每天的总发放金额。
您的工作区中有两个列表:ls_hours 和 ls_rates。每个列表都有 30 个元素,对应每个月的 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。 - 将函数
calc_payout()指定给该future_map()变体。 - 恢复为串行计划。
交互式实操练习
通过完成这段示例代码来试试这个练习。
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
___(___)