Meerdere inputs verwerken
Je werkt als Payroll Analyst bij een outsourcingbedrijf. Elke maand ontvang je gegevens voor de werknemers op je loonlijst. Je bent gevraagd om parallelle R-code te schrijven die de totale uitbetaling per dag kan berekenen.
Je hebt twee lijsten in je werkruimte, ls_hours en ls_rates. Beide hebben 30 elementen, één voor elke dag van de maand. Elk element van ls_hours bestaat uit de gewerkte uren per werknemer op een bepaalde dag, en elk element van ls_rates bevat de bijbehorende uur tarieven. Je hebt ook een functie, calc_payout(), die twee argumenten accepteert: hours en rates.
calc_payout <- function (hours, rates) paste0("$", sum(hours * rates))
Je moet de juiste functie uit het furrr-pakket gebruiken om deze berekening parallel uit te voeren. Het furrr-pakket is al voor je geladen.
Deze oefening maakt deel uit van de cursus
Parallel programmeren in R
Oefeninstructies
- Gebruik de
future_map()-variant die meerdere inputs accepteert om over te itereren. - Combineer
ls_hoursenls_rates. - Geef de functie
calc_payout()op aan defuture_map()-variant. - Ga terug naar een sequentieel plan.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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
___(___)