EmpezarEmpieza gratis

Un filtro paralelo

Trabajas como consultor de datos para las Naciones Unidas, y quieren encuestar a estudiantes de arte de todo el mundo. Han obtenido un conjunto de datos de universidades con departamentos de artes y humanidades. Han decidido seleccionar para la encuesta las mejores universidades artísticas de cada país.

uni_list es una lista de marcos de datos, cada elemento son los datos de un país. Cada marco de datos contiene una columna total_score. Tienes a tu disposición la siguiente función:

filter_df <- function (df, select_n_unis) {

  df %>% 

    top_n(select_n_unis, total_score)

}

Esta función requiere dplyr. El argumento select_n_unis define el número de universidades principales a seleccionar. Se te ha pedido que filtres en paralelo las cinco mejores universidades de cada archivo CSV. Se ha cargado para ti el paquete parallel.

Este ejercicio forma parte del curso

Programación paralela en R

Ver curso

Instrucciones del ejercicio

  • Carga dplyr en cada núcleo del clúster cl.
  • Exporta la variable n_unis al cluster cl.
  • Aplica filter_df() a cada elemento de uni_list utilizando parLapply().
  • Suministra el número de universidades a seleccionar, n_unis, al argumento correcto de filter_df().

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

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 y ejecutar código