Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Maak een cluster van vier cores.
  • Geef een bestand op met de naam state_log.txt waarin berichten van het cluster worden gelogd.
  • Log binnen de lusbody de maximumwaarde van kolom weight_gain_pounds in dataframe df.
  • Lees state_log.txt om 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 = ";")
Code bewerken en uitvoeren