2. Сильные стороны пакета purrr
• Функции purrr хорошо сочетаются с конвейерами magrittr
• Функции purrr являются типоустойчивыми, и возвращают результат в ожидаемом формате, в
базовом R это реализовано только в функции vapply().
• Функции purrr поддерживают сокращённый синтаксис за счёт формул.
• Функции purrr могут итерироваться одновременно по любому количеству объектов
считывая данные для аргументов функций из фрейма.
• Пакет purrr позволяет по очереди применить набор разных функций к объектам.
• purrr имеет набор функций для обработки ошибок, полученных в результате итерирования.
• …
3. Семейства функций в purrr
• map_* - итерируются по объекту подобно функциям семейства apply*
• pmap_* - позволяет итерировать по любому количеству объектов, принимая аргументы
применяемой функции в виде таблицы или списка
• invoke_map – позволяет применять различные функции к объекту
• walk* - выполняют действия не возвращая результат, например сохраняют файлы
• keep и discord – функции фильтрующие результат
• reduce и accumulate – функции которые применяют по очереди заданную функцию к парам
объектов
• possibly, safely, quietly - функции обработки ошибок
4. Семейство map() - функции
• map() – аналог lapply(), возвращает список
• map_lgl() – возвращает логический вектор
• map_chr() – возвращает текстовый вектор
• map_int() – возвpащает целочисленный вектор
• map_dbl() – возвращает вектор чисел с плавающей запятой
• map_df(), map_dfr(), map_dfc() – возвращают таблицу
5. Семейство map() - аргументы
• .x – объект, элементы которого необходимо перебрать
• .f– функция, которую будем применять
• … - аргументы функции.f
• .id – позволяет добавить столбец с идентификатором элемента входящего объекта
(доступно только в map_dfr*())
6. Итерирование одновременно по нескольким
объектам
• map2_*() – итерирование по двум объектам
• pmap_*() – итерирование более чем по двум объектам
7. Синтаксис формул в purrr
Знак тильды (~) заменяет function(.x)
Обращение к аргументам анонимной функции:
• Если аргумент один – точка
• Если два аргумента .x и .y
• Если более двух аргументов ..1, ..2, ..3 и т.д.
8. Функции walk(), walk2() и pwalk()
• Сохранение данных в файл
• Сохранение графиков в файл
• Отправка сообщений
• Любые другие действия, в которых вы не ожидаете от функции исходящих данных
9. Функции keep() и discord()
Позволяют фильтровать полученные результаты по заданному
условию
11. Функции reduce() и accumulate()
• reduce() – применяет функцию с двумя основными входными переменными и
повторно применяет её к списку до тех пор, пока не останется хотя бы один
элемент.
• accumulate() – аналогична reduce(), но удерживает все промежуточные
результаты.
Определения из книги «Язык R в задачах науки о данных»