Korrelationen debuggen
Du arbeitest für das US-Gesundheitsministerium. Dein Team untersucht, ob Mehrlingsschwangerschaften (Zwillinge, Drillinge usw.) mit einer stärkeren Gewichtszunahme während der Schwangerschaft einhergehen. Du hast die Korrelation berechnet, aber deine Werte weichen deutlich von den Schätzungen einer anderen Analystin ab. Sie hat darauf hingewiesen, dass deine Daten keine Werte für Gewichtszunahmen über 99 Pfund enthalten. Du hast beschlossen, die Berechnung erneut durchzuführen, und möchtest diesmal den Maximalwert der Gewichtszunahme protokollieren.
In deinem Arbeitsbereich hast du eine Liste von Data Frames, ls_df. Jedes Element von ls_df enthält Geburtsdaten für jeden Bundesstaat. Du hast eine foreach-Schleife geschrieben, um die Berechnung parallel auszuführen.
foreach und doParallel wurden für dich geladen.
Diese Übung ist Teil des Kurses
Paralleles Programmieren in R
Anleitung zur Übung
- Erstelle ein Cluster mit vier Kernen.
- Gib eine Datei namens
state_log.txtan, in der Meldungen des Clusters protokolliert werden. - Protokolliere im Schleifenrumpf den Maximalwert der Spalte
weight_gain_poundsim Data Framedf. - Lies
state_log.txt, um die Ausgaben zu prüfen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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 = ";")