Руководство по изучению языка R и его использование в Data Science
Подборка ресурсов для изучения языка программирования R, которая поможет начать изучение «с нуля» и пройти этот путь быстро и эффективно.
Для людей, столкнувшихся лицом к лицу с языком программирования R, существует одна общая проблема — это отсутствие структурированного плана изучения. Они не знают, с чего начать, куда двигаться, какой путь выбрать. А огромное количество информации по этой теме в Сети зачастую лишь сбивает с толку.
После перебирания бесконечных ресурсов и архивов получилось данное всеобъемлющее пособие по языку программирования R, которое поможет начать изучение «с нуля» и пройти этот путь быстро и эффективно.
Шаг 0: Подготовка
Прежде, чем отправиться в путь, ответьте для себя на вопрос: почему R? Как он сможет помочь? Посмотрите вот этот 90-секундный ролик от Revolution Analytics, чтобы понять, чем может быть полезен язык программирования R. К слову, Revolution Analytics не так давно была приобретена Microsoft.
Шаг 1: Настройка машины
Теперь, когда вы решились, самое время настроить машину. Первое, что нужно сделать — это загрузить базовую версию языка программирования R и инструкцию по ее установке с CRAN — Comprehensive R Archive Network (Всеобъемлющая архивная сеть R).
Затем можно поставить различные дополнительные библиотеки. Существует over9000 разных дополнений для языка программирования R – и это может сбить с толку. Посему, мы будем руководствоваться лишь установкой базовых пакетов, для начала. По этой ссылке можно посмотреть библиотеки из CRAN Views. Собственно, там можно выбрать те подтипы библиотек, которые вам интересны.
Как подключать библиотеки, смотрите здесь;
Некоторые важные библиотеки, о которых стоит знать, смотрите тут;
Необходимо установить все три нижеследующих GUI вместе с зависимыми пакетами:
- Rattle – для анализа данных (Ссылка) или
install.packages(“rattle”, dep=c(“Suggests”))
- R Commander - для базовой статистики (Ссылка) или
install.packages(“Rcmdr”)
- Deducer (вместе с JGR) для визуализации данных (Ссылка)
Также нужно установить RStudio. Работать на языке программирования R в ней значительно быстрее и проще, так как RStudio позволяет писать множественные строки кода, подключать и поддерживать библиотеки и вообще более продуктивно обустроить свою рабочую среду.
Задание:
- Установить R и RStudio;
- Установить библиотеки Rcmdr, rattle и Deducer. Установить все предложенные или сопутствующие пакеты, включая GUI;
- Загрузить эти библиотеки, используя соответствующие команды, поочередно открыть GUI.
Шаг 2: Изучение основ языка программирования R
Чтобы начать, необходимо постичь основы языка программирования R, его библиотек и структур данных. Начать изучение лучше всего с Datacamp. Особое внимание обратите на бесплатный курс введения в язык программирования R (вот тут можно почитать). К концу этого курса вы сможете писать небольшие скрипты на R, а также понять принципы анализа данных. В качестве альтернативы можно пройти «Школу программирования на R» вот здесь.
Если вы хотите изучать R офлайн в свободное время, можно использовать интерактивный пакет со Swirlstats.
Особое внимание следует уделить изучению read.table, структур данных, таблиц, сводок, описаний, загрузки и установки библиотек, визуализации данных с использованием команд.
Задание:
- Подписаться на ежедневную рассылку, относительно проекта R здесь;
- Создать аккаунт на Github;
- Учиться разбираться с установкой проблемных библиотек, используя Google для справки;
- Установить swirl-пакеты (см. выше) и изучать программирование на R;
- Черпать знания с Datacamp.
Дополнительные источники:
Если интерактивное программирование — не ваш стиль, можно смотреть двухминутные туториалы по языку программирования R тут. Данный видеокурс частично затрагивает поднятые здесь вопросы. Также можно ознакомиться с этим постом, чтобы получить более ясное представление о функциях языка R.
Шаг 3: Управление данными
Вам придется много работать для чистки данных, особенно если доведется обрабатывать текстовую информацию. Самое правильное, что можно сделать для начала – это пройти соответствующие упражнения. О соединении с базами данных можно узнать с помощью библиотеки RODBC, а о написании sql-запросов к структурам данных через sqldf.
Задание:
- Почитайте о разделенном, прикладном и комбинированном подходах к анализу данных в Journal of Statisical Software;
- Попытайтесь изучить подход "аккуратных данных" для проведения анализа;
- Почитайте о работе языка программирования R с реляционными базами данных в статье на decisionstats.com;
- Сделайте несколько упражнений на понимание качества данных;
- Не сидите только на анализе цифр. Разберите с помощью R спортивную аналитику на примере крикета.
Если вам нужно больше практики, на Datacamp можно оформить подписку на все обучающие программы за $25/месяц. Но начать стоит с введения в plyr вот здесь.
Шаг 4: Изучение специализированных библиотек data.table и dplyr
Вот здесь и начинается самая веселая часть! Ниже – рекомендации к прочтению и выполнению. Практику начнем с некоторых общих операций.
- Основательно изучите учебное пособие по data.table. Распечатайте и заучите шпаргалку по data.table;
- Затем можно взглянуть на туториал по dplyr;
- Чтобы понять основы анализа текста, сделайте облако слов на языке программирования R, потом пройдите следующий курс по неструктурированным данным: часть раз, часть два;
- Сделайте анализ настроений, используя данные Твиттера, как, например, здесь и здесь;
- По оптимизации с помощью R почитайте это и это.
Дополнительные источники:
- Если вам нужна книга по бизнес-аналитике на языке программирования R, то вот — "R for Business Analytics" от Аджая Ори;
- Если нужна книга для изучения R по-быстрому, то ее можно найти тут.
Шаг 5: Увеличение эффективности визуализации данных с помощью ggplot2
- Почитайте об Эдварде Тафте и его мыслях о том, как стоит (и не стоит) делать визуализацию данных здесь.
- Также, почитайте о подводных камнях при разработке дашбордов в материале Стивена Фью.
- Освойте грамотное построение графиков и практические способы их построения на R. По ссылке доступен курс по ggplot2 от доктора Хардли Уикхэма, создателя ggplot2 — одной из самых лучших библиотек для R на сегодняшний день.
- Если вы заинтересованы в пространственной визуализации данных, не проходите мимо библиотеки ggmap.
- Если интересуетесь анимацией данных, взгляните на эти примеры. Взять библиотеку для анимации можно здесь.
- С помощью Slidify можно визуализировать данные в виде слайдов на HTML5.
Шаг 6: Data Mining и машинное обучение
Сейчас мы подошли к наиболее ценным для аналитика навыкам – глубокому анализу и машинному обучению. Исчерпывающий набор информации о глубоком анализе с помощью R можно найти на RDM. А также свободно распространяемую и простую для понимания книгу по этой теме за авторством Грэхэма Уильямса можно найти здесь.
Обзор таких алгоритмов, как регрессия, дерева решений, ансамбли моделирования и кластеризация, а также опции для машинного обучения, доступные в R, можно найти по этой ссылке.
Дополнительные источники:
- "Data Mining with Rattle and R" — хорошая книга по глубокому анализу данных.
- Почитать о прогнозировании временных рядов на языке программирования R можно тут.
- Кое-что по машинному обучению в R есть здесь, а также здесь можно записаться на бесплатные курсы.
Шаг 7: Практика, практика и еще раз практика
Поздравления! Вы добились своего. Теперь у вас есть все, что нужно, осталось оттачивать технические навыки.
- Итак, теперь необходимо практиковаться, и для этого как нельзя лучше подойдут соревнования с коллегами-аналитиками на Kaggle. Начать этот практический курс можно отсюда.
- Оставаться на связи с коллегами по R-цеху можно подписавшись на R-bloggers.
- Для большего социального взаимодействия можно использовать в Твиттере хештег # rstats.
- Если на чем-то застряли, этот сайт поможет быстро разобраться и даст нужное количество информации.
Шаг 8: Сложные темы
Теперь, когда вы знаете об анализе данных с помощью R все, что нужно, настало время получить некоторые дополнительные задания. Есть вероятность, что кое-что из этого вы уже видели, но, все же, ознакомьтесь с этими материалами тоже.
- Занятие на тему совместного использования R и MongoDB есть тут.
- Еще один хороший материал по анализу Больших Данных с помощью R в NoSQL-эру.
- К слову, используя Shiny из RStudio, можно сделать интерактивное веб-приложение.
- Гайд для интересующихся в изучении синтаксиса R и Python здесь.
P.S. В случае, если вам приходится много работать с большими данными, взгляните на библиотеку RevoScaleR от Revolution Analytics. Это коммерческая библиотека, но она бесплатна для академического пользования. Пример проекта приведен здесь
Перевел Сергей Ворничес