Лингвисты обожают сравнивать словарный запас Пушкина и Шекспира. По разным оценкам, английский гений использовал от 18 до 25 тыс. слов, а солнце русской поэзии — порядка 22 тыс. Но вряд ли мы ценим поэтов только за их вокабуляры.
С Python и R та же история: можно бесконечно спорить, какой язык лучше по отдельным метрикам, но на вкус и цвет товарища нет. Поэтому прямо сейчас мы приведем несколько примеров, почему R уважать себя заставил.
С Python и R та же история: можно бесконечно спорить, какой язык лучше по отдельным метрикам, но на вкус и цвет товарища нет. Поэтому прямо сейчас мы приведем несколько примеров, почему R уважать себя заставил.
Работа с данными: глаголами dplyr жги сердца людей
«Говорят, теперь в России женщины серьезно обдумывают, как родить второго ребенка, минуя первого» (c) Дмитрий Медведев
Эта цитата иллюстрирует то, как многие сегодня хотят учить язык R. А именно: пропустить скучный base R и прямиком взяться за tidyverse! Впрочем, не осуждаем. Потому что tidyverse — это реально удобно и это отдельная вселенная. Экосистему из девяти коровых и кучи дополнительных пакетов вырастил Хэдли Уикхэм. Она — визитная карточка современного R.
Сердце tidyverse — пакет dplyr. Его прелесть — в наборе «глаголов» (select, filter, mutate, summarise), которые в сочетании с оператором пайп (%>% или |>) превращают код в читаемый рассказ, позволяя пропускать таблицу сквозь конвейер. Быстро вырабатывается зависимость от приятного синтаксиса.
После того как данные всячески причесаны, их обычно засовывают в какой-нибудь статтест. И здесь R — золотой стандарт, потому что язык изначально создавался статистиками для статистиков. Уже в базовый R встроены любые распределения, тесты, дисперсионный анализ, линейные модели. С помощью интуитивно понятных формул типа y ~ x1 + x2 можно описывать очень сложные дизайны.
Любопытно, что R — не пыльный привет из прошлого, как кто-то думает. R возник в 1993 году, через два года после Python, а вселенная tidyverse оформилась в 2016, спустя восемь лет после релиза Pandas!
После того как данные всячески причесаны, их обычно засовывают в какой-нибудь статтест. И здесь R — золотой стандарт, потому что язык изначально создавался статистиками для статистиков. Уже в базовый R встроены любые распределения, тесты, дисперсионный анализ, линейные модели. С помощью интуитивно понятных формул типа y ~ x1 + x2 можно описывать очень сложные дизайны.
Любопытно, что R — не пыльный привет из прошлого, как кто-то думает. R возник в 1993 году, через два года после Python, а вселенная tidyverse оформилась в 2016, спустя восемь лет после релиза Pandas!
Биоинформатика и NGS: аналоговнет
Дополнительные R-пакеты скачивают из репозиториев, главный из которых — CRAN. А биологи имеют свой — Bioconductor, богатый на ПО для биомедицины.
Взять, к примеру, транскриптомику. На R реализованы прекрасные и незаменимые пакеты для анализа RNA-seq. Это и DESeq2, edgeR, limma для дифэкспрессии, и clusterProfiler, fgsea для функционального обогащения, и WGCNA для сетей коэкспрессии. Реимплементаций этих программ на питоне либо нет, либо они незрелые, урезанные по возможностям и несравнимые по популярности.
Взять, к примеру, транскриптомику. На R реализованы прекрасные и незаменимые пакеты для анализа RNA-seq. Это и DESeq2, edgeR, limma для дифэкспрессии, и clusterProfiler, fgsea для функционального обогащения, и WGCNA для сетей коэкспрессии. Реимплементаций этих программ на питоне либо нет, либо они незрелые, урезанные по возможностям и несравнимые по популярности.
Дело доходит до того, что заядлые питонисты вынуждены ставить костыли вроде библиотеки rpy2, которая позволяет дергать специфические R-функции прямо из Python-скрипта.
В фешенебельном single-cell экосистема Seurat на R тоже остается полноправной альтернативой scanpy для анализа от матрицы гены × клетки до аннотации типов.
В фешенебельном single-cell экосистема Seurat на R тоже остается полноправной альтернативой scanpy для анализа от матрицы гены × клетки до аннотации типов.
И конкурсы интересные: датавиз
Еще один козырь R — рисование c ggplot2. gg означает грамматику графики, философию визуализации по слоям. Даже при минимальных трудозатратах можно получать вполне сносные картинки, а при усердии и кастомизации — непревзойденные шедевры. Написано огромное количество расширений ggplot2: ggforce, ggpubr, ggrepel, ggridges и др. Лолипоп-, бар-, бокс-, дот-, вайолин- и прочие плоты — возможно всё и даже больше. Недавно Иван Поздняков делал экскурс.
Вокруг пакета тусуется гигантское комьюнити: еженедельно проходит челлендж Опрятный Вторник. В понедельник орги выкладывают реальный датасет, энтузиасты его чистят, строят графики/дашборды и во вторник в соцсетях публикуют результаты с тегом #TidyTuesday. Отличная тренировка для новичков. Авторитетное имя в этой среде — Седрик Шерер, создатель восхитительной научной инфографики только с помощью кода. Кстати, по своему бэкграунду он эколог, что вдвойне отрадно.
Вокруг пакета тусуется гигантское комьюнити: еженедельно проходит челлендж Опрятный Вторник. В понедельник орги выкладывают реальный датасет, энтузиасты его чистят, строят графики/дашборды и во вторник в соцсетях публикуют результаты с тегом #TidyTuesday. Отличная тренировка для новичков. Авторитетное имя в этой среде — Седрик Шерер, создатель восхитительной научной инфографики только с помощью кода. Кстати, по своему бэкграунду он эколог, что вдвойне отрадно.
Питоноводы тоже не выдержали и «скосплеили» ggplot2. Получилась библиотека plotnine, которая реализует грамматику графики на змеином языке. Но зачем жалкая копия, если есть неповторимый оригинал?
Мораль
В 2026 году R живет и здравствует. Python хорош для разработки, машинного обучения и ИИ. Для ученых большинство потребностей с лихвой закрывает R. Идеально — быть билингвом или полиглотом, и не страшно иногда путать и писать install.packages("pandas")