Un filtre en parallèle
Vous travaillez comme consultant·e en données pour l'Organisation des Nations unies, qui souhaite sonder les étudiants en arts à l'échelle mondiale. Elle a obtenu un jeu de données d'universités ayant des départements en arts et en sciences humaines. Elle a décidé de sélectionner les meilleures universités en arts de chaque pays pour le sondage.
uni_list est une liste de trames de données, chaque élément correspondant aux données d'un pays. Chaque trame de données contient une colonne total_score. La fonction suivante est mise à votre disposition :
filter_df <- function (df, select_n_unis) {
df %>%
top_n(select_n_unis, total_score)
}
Cette fonction nécessite dplyr. Le paramètre select_n_unis définit le nombre d'universités à sélectionner parmi les meilleures. On vous a demandé de filtrer, en parallèle, les cinq meilleures universités de chaque fichier CSV. Le paquet parallel a été chargé pour vous.
Cette activité fait partie du cours
Programmation parallèle en R
Instructions de l’exercice
- Charger
dplyrsur chaque cœur du grappecl. - Exporter la variable
n_unisvers le grappecl. - Appliquer
filter_df()à chaque élément deuni_listà l'aide deparLapply(). - Fournir le nombre d'universités à sélectionner,
n_unis, au bon argument defilter_df().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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)