CommencerCommencer gratuitement

Un filtre en parallèle

Vous travaillez comme consultant·e données pour les Nations Unies, qui souhaitent interroger des étudiant·e·s en arts à l’échelle mondiale. Ils ont collecté un jeu de données d’universités disposant de départements d’arts et de lettres. Ils ont décidé de sélectionner les meilleures universités d’arts dans chaque pays pour l’enquête.

uni_list est une liste de data frames, chaque élément correspondant aux données d’un pays. Chaque data frame contient une colonne total_score. La fonction suivante est à votre disposition :

filter_df <- function (df, select_n_unis) {
  df %>% 
    top_n(select_n_unis, total_score)
}

Cette fonction nécessite dplyr. L’argument select_n_unis définit le nombre d’universités à sélectionner. On vous a demandé de filtrer, en parallèle, les cinq meilleures universités de chaque fichier CSV. Le package parallel a été chargé pour vous.

Cet exercice fait partie du cours

Programmation parallèle en R

Afficher le cours

Instructions

  • Chargez dplyr sur chaque cœur du cluster cl.
  • Exportez la variable n_unis vers le cluster cl.
  • Appliquez filter_df() à chaque élément de uni_list avec parLapply().
  • Fournissez le nombre d’universités à sélectionner, n_unis, à l’argument approprié de filter_df().

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

cl <- makeCluster(4)
# Load dplyr in cluster
___

n_unis <- 5
# Export n_unis to cluster
___(___, ___, envir = environment())
# Apply filter_df() to each element of uni_list
ls_df <- parLapply(___, ___, ___,
                   # Supply number of universities to select
                   ___ = ___)
stopCluster(cl)
Modifier et exécuter le code