Zacznij terazZacznij za darmo

Przetwarzanie wielu danych wejściowych

Pracujesz jako analityk ds. wynagrodzeń w firmie outsourcingowej. Co miesiąc otrzymujesz dane dotyczące pracowników na liście płac. Twoim zadaniem jest napisanie równoległego kodu w R, który obliczy łączną wypłatę za każdy dzień.

W przestrzeni roboczej masz dwie listy: ls_hours i ls_rates. Każda z nich zawiera 30 elementów – po jednym na każdy dzień miesiąca. Każdy element listy ls_hours przechowuje liczbę przepracowanych godzin przez poszczególnych pracowników w danym dniu, a każdy element listy ls_rates zawiera odpowiadające im stawki godzinowe. Dysponujesz również funkcją calc_payout(), która przyjmuje dwa argumenty: hours i rates.

calc_payout <- function (hours, rates) paste0("$", sum(hours * rates))

Użyj odpowiedniej funkcji z pakietu furrr, aby wykonać to obliczenie równolegle. Pakiet furrr jest już wczytany.

To ćwiczenie jest częścią kursu

Programowanie równoległe w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj wariantu future_map(), który obsługuje wiele danych wejściowych do iteracji.
  • Połącz ls_hours i ls_rates.
  • Wskaż funkcję calc_payout() jako argument wariantu future_map().
  • Przywróć plan sekwencyjny.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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
___(___)
Edytuj i uruchom kod