Lussen met foreach
Het Amerikaanse ministerie van Volksgezondheid heeft meldingen ontvangen van een hoger aantal ongunstige uitkomsten bij bevallingen. Je wilt onderzoeken of deze trend te maken heeft met een lage of juist hoge maternale leeftijd. Je team heeft de births-gegevensset van het voorafgaande jaar verzameld. Je hebt een lijst, ls_age. Elk element van deze lijst is een vector met de leeftijd van de moeder voor elke geregistreerde geboorte in een Amerikaanse staat.
De volgende lus berekent het percentage geboorten in een staat waarbij de maternale leeftijd lager is dan 20 of hoger dan 35:
at_risk_perc <- rep(NA, length(ls_age))
for (m in 1:length(ls_age)) {
at_risk_perc[m] <-
sum(ls_age[[m]] > 35 | ls_age[[m]] < 20) * 100/length(ls_age[[m]])
}
Dit duurt echter te lang, en je wilt andere opties proberen. foreach, parallel en doParallel zijn alvast voor je geladen.
Deze oefening maakt deel uit van de cursus
Parallel programmeren in R
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Specify input to loop over
at_risk_perc <- foreach(m = ___
# Specify the sequential operator
) ___ {
sum(m > 35 | m < 20) * 100/length(m)}