Paralelní filtrování
Pracuješ jako datový konzultant pro OSN, která chce provést průzkum mezi studenty umění po celém světě. K dispozici mají datovou sadu univerzit s fakultami umění a humanitních věd a rozhodli se pro průzkum vybrat nejlepší umělecké univerzity v každé zemi.
uni_list je seznam datových rámců, přičemž každý prvek obsahuje data z jedné země. Každý datový rámec obsahuje sloupec total_score. K dispozici máš následující funkci:
filter_df <- function (df, select_n_unis) {
df %>%
top_n(select_n_unis, total_score)
}
Tato funkce vyžaduje dplyr. Argument select_n_unis určuje počet nejlepších univerzit, které se mají vybrat. Tvým úkolem je paralelně vyfiltrovat pět nejlepších univerzit z každého CSV souboru. Balíček parallel je již načtený.
Toto cvičení je součástí kurzu
Paralelní programování v R
Pokyny k cvičení
- Načti
dplyrna každém jádře v clusterucl. - Exportuj proměnnou
n_unisdo clusterucl. - Aplikuj funkci
filter_df()na každý prvek seznamuuni_listpomocíparLapply(). - Předej počet univerzit k výběru,
n_unis, správnému argumentu funkcefilter_df().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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)