Comece agoraComece grátis

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

Ver curso

Instruções do exercicio

  • Carregue dplyr em cada núcleo do cluster cl.
  • Exporte a variável n_unis para o cluster cl.
  • Aplique filter_df() a cada elemento de uni_list usando parLapply().
  • Forneça o número de universidades a selecionar, n_unis, para o argumento correto de filter_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)
Editar e Executar Código