TGViewer
Статистика и R в науке и аналитике Статистика и R в науке и аналитике @stats_for_science · 5.56K subscribers
Post #45 2.66K
Супер крутая инструкция по освоению библиотеки purrr для замены циклов

Немного контекста: в R принято обходиться не то чтоб без вложенных циклов, а без циклов вообще. Как это реализуется? Большинство функций в R векторизованы, что означает, что функция будет работать со всеми элементами вектора без необходимости проходить цикл и обрабатывать каждый элемент по одному.
Простейший пример векторизации - возвести числа от 1 до 10 в квадрат. Классическим подходом было бы написать цикл от 1 до 10 и возвести в квадрат каждый элемент. Однако в R это можно сделать гораздо проще!
(1:10)**2
[1] 1 4 9 16 25 36 49 64 81 100

Мы просто взяли вектор чисел от 1 до 10 и возвели в квадрат одной строчкой без всяких циклов. Это самый простой прием, для более сложных пригодятся функции семейства apply или их более продвинутый аналог функции семейства map_*, map2_* из библиотеки purrr. Именно последним посвящен туториал, скачать который можно по ссылке.

Пример из жизни применения map функции. У меня много однотипных датасетов в определенной директории с одним расширением (например csv). Задача считать все датасеты в один лист для последующих манипуляций с ними. Чтобы не писать цикл, используем purrr::map
library(tidyverse)
csv_file_names <- dir(pattern = 'csv')
list_csv <- map(csv_file_names, ~read_csv(.x))

ИЛИ
list_csv <- map(csv_file_names, function(x) read_csv(x))

, если без синтаксического сахара, а использовать более привычный apply-способ

Вообще на тему функционального программирования в R, векторизации и сравнения *apply и map_* функций можно довольно много что расписать, если есть интерес к этой теме, ставьте реакцию с китом (потому что с котом еще нет реакций, а символ purrr - котик).

#R #tidyverse #purrr
  • 🐳 43
  • ❤ 7
More from @stats_for_science
  1. Sep 20, 2026Поведенческая секция: «Расскажите о случае, когда вы не согласились с продактом» Продолжае…
  2. Sep 12, 2026Узнали, согласны? Собрала немного обычных моментов из жизни биолога и A/B тестера, но все…
  3. Sep 1, 2026Коллеги-биостатистики опубликовали статью "Мифологизация статистики в биомедицинских иссле…
  4. Aug 30, 2026С днем рождения меня! 🎉 У меня из недавнего интересного - получила приз лучший сотрудник…
  5. Aug 28, 2026Последовательное тестирование: почему это не волшебная таблетка Сегодня обсудим матчасть м…
  6. Aug 23, 2026Когда мера становится целью: закон Гудхарта В прошлый раз разбирали как прокси-метрики мог…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →