Zpracování více vstupů
Pracuješ jako mzdový analytik v outsourcingové firmě. Každý měsíc dostáváš data o pracovnících ve své mzdové agendě a tvým úkolem je napsat paralelní R kód, který vypočítá celkovou mzdu za každý den.
V pracovním prostředí máš k dispozici dva listy: ls_hours a ls_rates. Každý z nich obsahuje 30 prvků – jeden pro každý den v měsíci. Každý prvek ls_hours obsahuje počet odpracovaných hodin jednotlivých pracovníků v daný den, každý prvek ls_rates pak odpovídající hodinové sazby. Máš také funkci calc_payout(), která přijímá dva argumenty: hours a rates.
calc_payout <- function (hours, rates) paste0("$", sum(hours * rates))
Pro tento výpočet použij vhodnou funkci z balíčku furrr, která ho provede paralelně. Balíček furrr je již načtený.
Toto cvičení je součástí kurzu
Paralelní programování v R
Pokyny k cvičení
- Použij variantu
future_map(), která umožňuje iterovat přes více vstupů. - Zkombinuj
ls_hoursals_rates. - Jako funkci pro variantu
future_map()zadejcalc_payout(). - Přepni zpět na sekvenční plán.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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
___(___)