Обработка нескольких входных данных
Вы работаете аналитиком по расчёту заработной платы в аутсорсинговой компании. Каждый месяц вы получаете данные о сотрудниках, занятых в расчётном периоде. Вам поручено написать параллельный код на 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
___(___)