用 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)}