НачатьНачать бесплатно

Параллельная фильтрация

Вы работаете консультантом по данным в ООН. Организация хочет провести глобальный опрос среди студентов, изучающих искусство. Для этого был подготовлен набор данных университетов с факультетами искусства и гуманитарных наук. Решено включить в опрос лучшие профильные университеты каждой страны.

uni_list — это список фреймов данных, где каждый элемент соответствует данным одной страны. Каждый фрейм содержит столбец total_score. Для вас уже определена следующая функция:

filter_df <- function (df, select_n_unis) {
  df %>% 
    top_n(select_n_unis, total_score)
}

Для работы этой функции требуется dplyr. Аргумент select_n_unis задаёт количество лучших университетов для отбора. Вам нужно в параллельном режиме отобрать пять лучших университетов из каждого CSV-файла. Пакет parallel уже загружен.

Это упражнение является частью курса

Параллельное программирование на R

Посмотреть курс

Инструкции к упражнению

  • Загрузите dplyr на каждом ядре кластера cl.
  • Экспортируйте переменную n_unis в кластер cl.
  • Примените filter_df() к каждому элементу uni_list с помощью parLapply().
  • Передайте количество университетов для отбора, n_unis, в соответствующий аргумент функции filter_df().

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код