Цикли з foreach
Міністерство охорони здоровʼя США отримало повідомлення про зростання частоти несприятливих наслідків під час пологів. Ви хочете перевірити, чи повʼязана ця тенденція з низьким або високим материнським віком. Ваша команда підготувала набір даних про народжуваність за попередній рік. У вас є список ls_age. Кожен елемент цього списку — це вектор віку матері для кожних пологів, зареєстрованих у певному штаті США.
Наведений нижче цикл обчислює відсоток народжень у штаті, де вік матері менший за 20 або більший за 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]])
}
Однак це займає занадто багато часу, тож ви хочете спробувати інші варіанти. foreach, parallel і doParallel уже завантажені для вас.
Ця вправа є частиною курсу
Паралельне програмування в R
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Specify input to loop over
at_risk_perc <- foreach(m = ___
# Specify the sequential operator
) ___ {
sum(m > 35 | m < 20) * 100/length(m)}