Schleifen mit foreach
Das US-Gesundheitsministerium hat Berichte über eine höhere Rate ungünstiger Geburtsergebnisse erhalten. Du möchtest prüfen, ob dieser Trend mit einem niedrigen oder hohen Alter der Mutter zusammenhängt. Dein Team hat den Geburten-Datensatz des Vorjahres beschafft. Du hast eine Liste ls_age. Jedes Element dieser Liste ist ein Vektor mit dem Alter der Mutter für jede in einem US-Bundesstaat erfasste Geburt.
Die folgende Schleife berechnet den prozentualen Anteil der Geburten in einem Bundesstaat, bei denen das Alter der Mutter unter 20 oder über 35 liegt:
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]])
}
Das dauert jedoch zu lange, und du willst andere Optionen testen. foreach, parallel und doParallel wurden für dich geladen.
Diese Übung ist Teil des Kurses
<Kurs>Paralleles Programmieren in R</Kurs>Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Specify input to loop over
at_risk_perc <- foreach(m = ___
# Specify the sequential operator
) ___ {
sum(m > 35 | m < 20) * 100/length(m)}