CommencezCommencez gratuitement

Déboguer des corrélations

Vous travaillez pour le Department of Health des États‑Unis. Votre équipe cherche à savoir si le fait d'avoir une grossesse multiple (jumeaux, triplés, etc.) est corrélé à un gain de poids plus important pendant la grossesse. Vous avez calculé la corrélation, mais vos valeurs diffèrent sensiblement des estimations d'une autre analyste. Elle a souligné que vos données n'enregistrent pas de valeurs de gain de poids supérieures à 99 livres. Vous avez décidé de relancer le calcul et, cette fois, vous voulez consigner la valeur maximale du gain de poids.

Dans votre espace de travail, vous avez une liste de trames de données, ls_df. Chaque élément de ls_df contient des données de naissances pour chaque État. Vous avez écrit une boucle foreach pour exécuter le calcul en parallèle.

foreach et doParallel ont été chargés pour vous.

Cette activité fait partie du cours

Programmation parallèle en R

Voir le cours

Instructions de l’exercice

  • Créez un grappe de calcul de quatre cœurs.
  • Indiquez un fichier nommé state_log.txt où les messages du grappe seront consignés.
  • À l'intérieur du corps de la boucle, consignez la valeur maximale de la colonne weight_gain_pounds dans la trame de données df.
  • Lisez state_log.txt pour vérifier les messages imprimés.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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 = ";")
Modifier et exécuter le code