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
Instrucciones del ejercicio
- Carga
dplyren cada núcleo del clústercl. - Exporta la variable
n_unisal clustercl. - Aplica
filter_df()a cada elemento deuni_listutilizandoparLapply(). - Suministra el número de universidades a seleccionar,
n_unis, al argumento correcto defilter_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)