开始使用免费开始使用

处理多个输入

您在一家外包公司担任薪酬分析师。每个月,您都会收到工资表中员工的数据。现在需要您编写并行 R 代码,计算每天的总发放金额。

您的工作区中有两个列表:ls_hoursls_rates。每个列表都有 30 个元素,对应每个月的 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
  • 将函数 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
___(___)
编辑并运行代码