Bắt đầu ngayBắt đầu miễn phí

Lặp với foreach

Bộ Y tế Hoa Kỳ nhận được báo cáo về tỷ lệ kết cục bất lợi khi sinh nở tăng cao. Bạn muốn tìm hiểu liệu xu hướng này có liên quan đến độ tuổi mang thai quá thấp hoặc quá cao hay không. Nhóm của bạn đã thu thập bộ dữ liệu births của năm trước. Bạn có một list, ls_age. Mỗi phần tử của list này là một vector độ tuổi của mẹ cho từng ca sinh được ghi nhận tại một bang của Hoa Kỳ.

Vòng lặp sau đây tính phần trăm số ca sinh trong một bang mà tuổi của mẹ nhỏ hơn 20 hoặc lớn hơn 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]])
}

Tuy nhiên, cách này mất quá nhiều thời gian, và bạn muốn thử phương án khác. foreach, parallel, và doParallel đã được nạp sẵn cho bạn.

Bài tập này là một phần của khóa học

Lập trình song song trong R

Xem khóa học

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Specify input to loop over 
at_risk_perc <- foreach(m = ___
                        # Specify the sequential operator
                       ) ___ {
  sum(m > 35 | m < 20) * 100/length(m)}
Chỉnh sửa và Chạy Mã