Correlaties debuggen
Je werkt voor het US Department of Health. Je team onderzoekt of meerlingzwangerschappen (tweelingen, drielingen, enz.) samenhangen met meer gewichtstoename tijdens de zwangerschap. Je hebt de correlatie berekend, maar jouw waarden wijken sterk af van de schattingen van een andere analist. Zij wees erop dat jouw gegevens geen waarden registreren voor gewichtstoename boven de 99 pond. Je hebt besloten de berekening opnieuw uit te voeren en dit keer wil je de maximumwaarde voor gewichtstoename loggen.
In je werkruimte staat een lijst met dataframes, ls_df. Elk element van ls_df bevat geboortedata per staat. Je hebt een foreach-lus geschreven om de berekening parallel uit te voeren.
foreach en doParallel zijn al voor je geladen.
Deze oefening maakt deel uit van de cursus
Parallel programmeren in R
Oefeninstructies
- Maak een cluster van vier cores.
- Geef een bestand op met de naam
state_log.txtwaarin berichten van het cluster worden gelogd. - Log binnen de lusbody de maximumwaarde van kolom
weight_gain_poundsin dataframedf. - Lees
state_log.txtom de printberichten te controleren.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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 = ";")