Xử lý nhiều đầu vào
Bạn là Chuyên viên tính lương tại một công ty outsourcing. Mỗi tháng, bạn nhận dữ liệu về nhân sự trong bảng lương. Bạn được yêu cầu viết mã R chạy song song để tính tổng tiền chi trả mỗi ngày.
Trong môi trường làm việc, bạn có hai danh sách, ls_hours và ls_rates. Mỗi danh sách có 30 phần tử, tương ứng với 30 ngày trong tháng. Mỗi phần tử của ls_hours là số giờ làm việc của từng nhân viên trong một ngày nhất định, và mỗi phần tử của ls_rates là mức lương theo giờ tương ứng. Bạn cũng có một hàm calc_payout() nhận hai đối số, hours và rates.
calc_payout <- function (hours, rates) paste0("$", sum(hours * rates))
Bạn cần dùng hàm phù hợp từ gói furrr để thực hiện phép tính này theo dạng song song. Gói furrr đã được nạp sẵn cho bạn.
Bài tập này là một phần của khóa học
Lập trình song song trong R
Hướng dẫn bài tập
- Dùng biến thể của
future_map()có khả năng nhận nhiều đầu vào để lặp. - Kết hợp
ls_hoursvàls_rates. - Chỉ định hàm
calc_payout()cho biến thểfuture_map(). - Chuyển về kế hoạch thực thi tuần tự.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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
___(___)