1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Lập trình song song trong R

Connected

Bài tập

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.

Hướng dẫn 1/2

undefined XP
    1
    2
  • Chỉ định đầu vào cần lặp qua cho hàm foreach().
  • Dùng đúng toán tử cho thực thi tuần tự.