Debugging delle correlazioni
Lavori per il Dipartimento della Salute degli Stati Uniti. Il tuo team sta indagando se avere gravidanze multiple (gemelli, trigemini, ecc.) sia correlato a un maggior aumento di peso durante la gravidanza. Hai calcolato la correlazione, ma i tuoi valori differiscono in modo significativo dalle stime di un'altra analista. Lei ha fatto notare che nei tuoi dati non sono registrati valori di aumento di peso superiori a 99 libbre. Hai deciso di eseguire nuovamente il calcolo e, questa volta, vuoi registrare il valore massimo di aumento di peso.
Nel tuo workspace hai una lista di data frame, ls_df. Ogni elemento di ls_df contiene i dati sulle nascite per ciascuno stato. Hai scritto un ciclo foreach per eseguire il calcolo in parallelo.
foreach e doParallel sono già stati caricati per te.
Questo esercizio fa parte del corso
Programmazione parallela in R
Istruzioni dell'esercizio
- Crea un cluster di quattro core.
- Specifica un file chiamato
state_log.txtin cui verranno registrati i messaggi dal cluster. - All'interno del corpo del loop, registra il valore massimo della colonna
weight_gain_poundsnel data framedf. - Leggi
state_log.txtper controllare i messaggi stampati.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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 = ";")