Zacznij terazZacznij za darmo

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

Zobacz kurs

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)}
Edytuj i uruchom kod