ÎncepețiÎncepe gratuit

Un filtru în paralel

Lucrezi ca și consultant de date pentru Națiunile Unite, iar aceștia doresc să realizeze un sondaj în rândul studenților la arte din întreaga lume. Au obținut un set de date cu universități care au departamente de arte și științe umaniste și au decis să selecteze cele mai bune universități de arte din fiecare țară pentru sondaj.

uni_list este o listă de date frames, fiecare element conținând datele dintr-o țară. Fiecare data frame are o coloană total_score. Ai la dispoziție următoarea funcție:

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

Această funcție necesită dplyr. Argumentul select_n_unis definește numărul de universități de top care vor fi selectate. Ți s-a cerut să filtrezi primele cinci universități din fiecare fișier CSV, în paralel. Pachetul parallel a fost deja încărcat.

Acest exercițiu face parte din cursul

Programare paralelă în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Încarcă dplyr pe fiecare nucleu din clusterul cl.
  • Exportă variabila n_unis către clusterul cl.
  • Aplică filter_df() fiecărui element din uni_list folosind parLapply().
  • Furnizează numărul de universități de selectat, n_unis, argumentului corespunzător din filter_df().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul