Kom igångKom igång gratis

Loopar med foreach

Det amerikanska hälsodepartementet har fått rapporter om en ökad andel negativa utfall vid förlossningar. Du vill undersöka om denna trend beror på låg eller hög ålder hos modern. Ditt team har hämtat in förlossningsdata för föregående år. Du har en lista, ls_age, där varje element är en vektor med moderns ålder för varje registrerad förlossning i en delstat.

Följande loop beräknar andelen förlossningar per delstat där moderns ålder är under 20 eller över 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]])
}

Detta tar dock för lång tid, och du vill testa andra alternativ. foreach, parallel och doParallel har redan laddats in åt dig.

Den här övningen är en del av kursen

Parallell programmering i R

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Specify input to loop over 
at_risk_perc <- foreach(m = ___
                        # Specify the sequential operator
                       ) ___ {
  sum(m > 35 | m < 20) * 100/length(m)}
Redigera och kör kod