相関のデバッグ
あなたは米国保健当局で働いています。チームでは、多胎妊娠(双子、三つ子など)が妊娠中の体重増加に相関しているかどうかを調査しています。相関を計算しましたが、あなたの値は別のアナリストの推定値と大きく異なりました。彼女から、あなたのデータには体重増加が99ポンドを超える値が記録されていないと指摘されました。そこで計算をやり直し、今回は体重増加の最大値をログに記録することにしました。
ワークスペースにはデータフレームのリスト ls_df があります。ls_df の各要素には各州の出生データが入っています。計算を並列で実行するための foreach ループは作成済みです。
foreach と doParallel は読み込まれています。
この演習はコースの一部です
R による並列プログラミング
演習の手順
- 4コアのクラスターを作成します。
- クラスターからのメッセージを記録するファイル
state_log.txtを指定します。 - ループ本体では、データフレーム
dfの列weight_gain_poundsの最大値をログに出力します。 state_log.txtを読み込み、出力されたメッセージを確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create a cluster of four cores
cl <- ___(___,
# Specify a file to log print statements
___ = "___")
registerDoParallel(cl)
res <- foreach(df = ls_df) %dopar% {
print(paste(unique(df$state), ":",
# Calculate maximum of weight_gain_pounds in df
___(___)))
cor(df$plurality, df$weight_gain_pounds)
}
stopCluster(cl)
# Read log file to check print messages
read.delim("___", sep = ";")