Um filtro em paralelo
Você trabalha como consultor(a) de dados para as Nações Unidas, que querem pesquisar estudantes de artes no mundo todo. Eles reuniram um conjunto de dados de universidades com departamentos de artes e humanidades e decidiram selecionar as melhores universidades de artes em cada país para a pesquisa.
uni_list é uma lista de data frames, em que cada elemento contém os dados de um país. Cada data frame tem uma coluna total_score. A função a seguir está disponível para você:
filter_df <- function (df, select_n_unis) {
df %>%
top_n(select_n_unis, total_score)
}
Essa função requer dplyr. O argumento select_n_unis define o número de universidades no topo a serem selecionadas. Você foi solicitado(a) a filtrar as cinco melhores universidades de cada arquivo CSV em paralelo. O pacote parallel já foi carregado para você.
Este exercicio faz parte do curso
Programação Paralela em R
Instruções do exercicio
- Carregue
dplyrem cada núcleo do clustercl. - Exporte a variável
n_unispara o clustercl. - Aplique
filter_df()a cada elemento deuni_listusandoparLapply(). - Forneça o número de universidades a selecionar,
n_unis, para o argumento correto defilter_df().
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
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)