Aan de slagGa gratis aan de slag

Zorguitgaven met clusterMap()

Op een recente zorgconferentie werd gesteld dat de totale zorguitgaven wereldwijd stijgen.

Je was erbij en wilt een grove schatting maken om deze bewering te testen. Je hebt een gegevensset gevonden met de zorguitgaven per hoofd van de bevolking en de populatie vanaf het jaar 2000. Je hebt twee lijsten: ls_pop en ls_exp. Ze bevatten respectievelijk de bevolkingsomvang en de zorguitgaven per hoofd voor elk land.

De functie total_exp() neemt twee argumenten: pop (populatie) en exp_pc (zorguitgaven per hoofd). Deze functie geeft de totale uitgaven terug in miljarden Amerikaanse dollars. Je wilt deze functie parallel toepassen op ls_pop en ls_exp. Het pakket parallel is al geladen.

Deze oefening maakt deel uit van de cursus

Parallel programmeren in R

Cursus bekijken

Oefeninstructies

  • Pas total_exp() parallel toe op elk element van ls_pop en ls_exp.
  • Geef op welke lijst haar elementen moet doorgeven aan het argument pop van total_exp().
  • Geef op welke lijst moet worden doorgegeven aan het argument exp_pc van total_exp().

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

total_exp <- function (pop, exp_pc) {
 sum(pop * exp_pc)/1e9
}

cl <- makeCluster(4)
# Apply total_exp using cl to multiple arguments
ls_total <- ___(___, ___,
                       # Specify first argument
                       pop = ___,
                       # Specify second argument
                       exp_pc = ___)

stopCluster(cl)

print(paste("Average yearly increase in USD billions:", round(mean(diff(unlist(ls_total))))))
Code bewerken en uitvoeren