Pętle z foreach
Departament Zdrowia USA otrzymał zgłoszenia dotyczące wzrostu liczby niekorzystnych wyników podczas porodów. Chcesz zbadać, czy trend ten wiąże się z niskim lub wysokim wiekiem matki. Twój zespół zebrał zbiór danych births z poprzedniego roku. Masz do dyspozycji listę ls_age – każdy jej element to wektor zawierający wiek matki przy każdym odnotowanym porodzie w danym stanie USA.
Poniższa pętla oblicza odsetek porodów w danym stanie, w których wiek matki był poniżej 20 lub powyżej 35 lat:
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]])
}
Jednak wykonanie zajmuje zbyt dużo czasu i chcesz przetestować inne opcje. Pakiety foreach, parallel oraz doParallel są już wczytane.
To ćwiczenie jest częścią kursu
Programowanie równoległe w R
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Specify input to loop over
at_risk_perc <- foreach(m = ___
# Specify the sequential operator
) ___ {
sum(m > 35 | m < 20) * 100/length(m)}