НачатьНачать бесплатно

Обработка нескольких входных данных

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