НачатьНачать бесплатно

Циклы с 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)}
Редактировать и запускать код