始める無料で始める

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

しかし、この処理には時間がかかりすぎるため、別の方法を試したいと考えています。foreachparalleldoParallel は読み込まれています。

この演習はコースの一部です

R による並列プログラミング

コースを見る

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Specify input to loop over 
at_risk_perc <- foreach(m = ___
                        # Specify the sequential operator
                       ) ___ {
  sum(m > 35 | m < 20) * 100/length(m)}
コードを編集して実行