Что такое R?
R - это язык программирования, созданный для одной задачи: работы с данными. Статистика, анализ данных и визуализация - это не то, что прикручивают к R библиотеками, они и есть сам язык. Средние, модели, графики и распределения вероятностей идут в комплекте, а синтаксис построен вокруг вопроса, который люди, работающие с данными, задают на самом деле: «вот столбец чисел, расскажи мне о нём что-нибудь».
Эта сфокусированность - весь характер R. Универсальный язык вроде Java предлагает собирать всё из примитивов. R выдаёт t-тест одной строкой.
Вот R делает то, для чего родился, - запустите:
Три статистики, три строки, ни одного импорта. c() собирает вектор значений, а mean(), sd() и max() встроены прямо в язык. Это опыт работы с R в миниатюре.
Немного истории
R вырос из S - статистического языка, разработанного в Bell Labs в 1970-х. В середине 1990-х два статистика из Оклендского университета - Росс Ихака и Роберт Джентлмен - создали свободную реализацию идей S с открытым кодом и назвали её R, обыграв и первые буквы своих имён, и язык S, от которого она произошла.
R 1.0 вышел в 2000 году, и с тех пор язык поддерживается командой R Core Team. Поскольку он был бесплатным, а его коммерческие предки - нет, R сначала распространился по университетам и исследовательским лабораториям - и эта академическая ДНК видна до сих пор: когда статистики изобретают новый метод, пакет для R с его реализацией обычно появляется раньше всего остального.
Для чего используется R
- Статистика и анализ данных. Основной сценарий. Описательные статистики, проверка гипотез, регрессия, временные ряды - всё это полноправные граждане языка.
- Визуализация данных. Базовые графики R строятся одним вызовом функции, а пакет
ggplot2многие считают лучшей библиотекой для графиков среди всех языков. - Data science. Коллекция пакетов "tidyverse" (
dplyr,tidyr,readr) делает очистку и преобразование сырых данных на редкость приятными. - Биоинформатика. Проект Bioconductor - тысячи R-пакетов для геномики - сделал R языком по умолчанию в значительной части биологии.
- Академическая среда и исследования. Экономика, психология, эпидемиология, экология: если в области публикуют статьи с p-значениями, её аспиранты, скорее всего, пишут на R.
- Отчётность. R Markdown и Quarto превращают код анализа в аккуратные отчёты, слайды и дашборды.
За что любят R
Всё - вектор. Операции в R естественно применяются сразу к целым наборам значений - prices * 1.2 поднимает каждую цену на 20%, и никакой цикл не нужен. Как только это щёлкает в голове, код для работы с данными становится радикально короче. Вы будете встречать это повсюду, когда доберётесь до векторов.
Статистика встроена. Генерация случайных чисел, распределения, статистические тесты и линейные модели живут в базовом R. В большинстве языков это сторонние зависимости; в R они просто есть.
CRAN. Comprehensive R Archive Network содержит более 20 000 курируемых пакетов, и каждый проходит автоматические проверки перед публикацией. Какой бы нишевый метод ни использовался в вашей области, кто-то уже упаковал его в пакет.
Графики, которые уважают ваше время. hist(scores) даёт гистограмму. Один вызов. Разведочный анализ - посмотреть на данные, подправить, посмотреть снова - именно то, подо что R оптимизирован.
R против Python: честная версия
Этот вопрос задаёт каждый новичок, так что вот ответ без фанатских войн.
Python - универсальный язык, который очень хорош в данных. Он выигрывает, когда работа с данными - лишь часть большей системы: веб-приложения, продакшен-пайплайна машинного обучения, автоматизации. К нему привязано больше вакансий, и один язык покрывает больше задач.
R - язык для данных, который превосходен в статистике. Он выигрывает, когда работа и есть анализ: исследование наборов данных, подгонка статистических моделей, создание графиков и отчётов публикационного качества. Его статистическая экосистема глубже, и передовые методы появляются в R первыми.
Ни один не «лучше» - у них просто разные центры тяжести. Если вы в исследованиях, биостатистике или аналитических ролях, начинайте с R. Если целитесь в разработку ПО с уклоном в данные, начинайте с Python. И секрет, который пропускают в онлайн-спорах: второй язык требует лишь малой доли усилий после первого, и множество профессионалов используют оба на одной неделе.
Попробуйте прямо сейчас
Чтобы начать, ничего устанавливать не нужно - блоки кода на этих страницах живые. Вот пример чуть побольше: симулируем броски игральной кости и подводим итоги.
sample() симулирует 100 бросков кости, а table() считает, сколько раз выпала каждая грань, - таблица частот одним вызовом. Замените 100 на 10000 и запустите снова: среднее подползает к 3.5, ровно как и предсказывает теория вероятностей. Этот цикл - вопрос, код, ответ, правка - и есть ощущение работы в R.
Когда будете готовы запускать R на собственной машине, следующий шаг - установка R и RStudio.
Что стоит запомнить
- R - бесплатный язык с открытым кодом, созданный специально для статистики, анализа и визуализации данных.
- Он происходит от S; его создали Росс Ихака и Роберт Джентлмен в середине 1990-х, а R 1.0 вышел в 2000 году.
- Его сильные стороны: векторизованные операции, встроенная статистика, 20 000+ пакетов на CRAN и лучшие в своём классе графики.
- R против Python - не война: R глубже в статистике, Python шире в инженерии, и многие используют оба.
Дальше: устанавливаем R (и RStudio) на вашу машину.
Часто задаваемые вопросы
Для чего используется программирование на R?
R используется для статистики, анализа данных и визуализации данных. Он доминирует в академических исследованиях, биостатистике и биоинформатике, эпидемиологии и в любой области, где задача звучит как «проанализируй этот набор данных и построй графики и модели». Для создания приложений или сайтов он применяется реже - не для этого его проектировали.
Сложно ли выучить R?
Для работы с данными R - один из самых простых языков для старта. Загрузить набор данных, посчитать описательные статистики и нарисовать график - каждое действие занимает одну строку. Позже людей сбивает с толку гибкость R - одно и то же можно сделать несколькими способами - поэтому имеет смысл с самого начала освоить современные соглашения.
Что учить: R или Python?
Если ваша работа в первую очередь про статистику (исследования, биостатистика, эконометрика, отчётность), R доведёт вас дальше и быстрее. Если вам нужен один универсальный язык для данных плюс скрипты, веб-бэкенды или инженерия машинного обучения, выбирайте Python. Многие специалисты по данным в итоге используют оба - концепции переносятся.
R бесплатный?
Да. R - бесплатный язык с открытым исходным кодом, распространяемый под лицензией GPL. Вы скачиваете его с CRAN без всякой платы, и тысячи пакетов на CRAN тоже бесплатны.