Обробка кількох вхідних даних
Ви працюєте аналітиком з нарахування заробітної плати в аутсорсинговій компанії. Щомісяця ви отримуєте дані щодо працівників у вашому платіжному реєстрі. Вас попросили написати паралельний код 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. - Передайте функцію
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
___(___)