Кажется, что все ресурсы уже известны, но откуда тогда миллион вопрос типа «как научиться R?» в интернете?
Этот материал — перевод статьи Тал Галили, доступной на сайте R-bloggers по ссылке: https://www.r-bloggers.com/how-to-learn-r-2/
Существуют тысячи ресурсов, которые помогут вам познакомиться с различными аспектами языка программирования R — и такое разнообразие легко ошеломит начинающего. Кроме того, R — очень динамичный и быстро меняющийся язык, так что очень важно быть знакомым с последними инструментами и технологиями.
Поэтому R-Bloggers в сотрудничестве с DataCamp подготовили для вас путеводитель по изучению R. В каждой секции вы найдёте лучше ресурсы и инструменты чтобы начать и сохранить намерение продолжать учиться — набор различных материалов: документации, онлайн курсов, книг и много другого.
Этот учебный план, как и сам язык R, весьма динамичен. Наша задача — постоянно дополнять и улучшать список ресурсов, чтобы вы могли получить лучший доступный учебный опыт. Если у вас есть идеи о том, как улучшить этот учебный план — пожалуйста, поделитесь ими по адресу tal.galili@gmail.com
Учебный план
- Для начала: основы R
- Организация рабочего места
- Пакеты R
- Импорт данных в R
- Обработка данных
- Визуализация данных
- Наука о данных и машинное обучение в R
- Подготовка отчётов в R
- Углублённое изучение R – (платные) онлайн курсы
- Дальнейшие шаги
Для начала: основы R
Лучший способ выучить R — работать с
R. Если вы только начинаете осваивать язык, то
обратите внимание на это бесплатное введение в R от DataCamp (первая глава – бесплатная)
и его продолжение (по подписке). Оба курса интерактивны, доступны вам в любое
время, в удобном вам темпе и любимом браузере. Подсказки, к которым можно обратиться непосредственно
во время выполнения упражнений, помогут не
застрять на одном месте.
Другой бесплатный интерактивный курс, «Попробуй R», доступен в школе программирования издательства O’reilly. Интерактивный курс, работающий без интернета — swirl, пакет R, который сделает путь к освоению языка весёлым и простым. Вы можете пройти курс swirl (1) установив пакет в R, и (2) выбрав его в библиотеке курсов. Если ничего устанавливать не хочется, можно воспользоваться онлайн версией Swirl.
Также очень хорошие курсы доступны на edX и Coursera – они помогут освоить основы программирования на R. На edX посмотрите восьмичасовой курс «Введение в программирование на R» от Microsoft – он покрывает основы и базовый синтаксис языка. Есть также популярный курс «Программирование на языке R» от университета Джона Хопкинса, ищите его на Coursera. Мы очень рекомендуем оба!
Тем, кто лучше усваивает тексты, тоже есть из чего выбрать: введение в R от CRAN, доступные книги «R для каждого» Джареда Ландера или «R в действии» Роберта Кабакова.
Организация рабочего места
Скачать R можно из CRAN (Comprehensive R Archive Network). Доступны версии для Linux, Mac и Windows.
Когда R установлен, вы можете выбирать – работать с базовой консолью, или использовать интегрированную среду разработки (integrated development environment, IDE). RStudio – самая популярная на сегодняшний день IDE для R и поддерживает отладку программы (дебаггинг), управление рабочим пространством, построение графиков и многое другое (не забудьте ознакомиться с горячими клавишами RStudio).
Альтернативы RStudio – Architect, и основанные на Eclipse IDE для R. Если вам больше по душе графический интерфейс, то присмотритесь к R-commander (также известен как Rcmdr) или Debucer.
Пакеты R
Пакеты R – это топливо, которое обеспечивает рост и популярность R. Пакеты R – это наборы из готового кода, данных, документации и тестов, которыми легко поделиться с другими. Прежде чем пользоваться пакетом, вам нужно его установить. Некоторые из них, такие как базовый пакет, автоматически устанавливаются с R. Другие, как ggplot2, не входят в стандартный набор пакетов, поставляемый с языком, и должен быть установлен вручную.
Многие (но не все) пакеты R собраны и доступны в CRAN, сети серверов по всему миру, на которых хранятся идентичные, самые актуальные версии кода и документации для R. Эти пакеты легко установить непосредственно в R, используя функцию install.packages. На сайте CRAN также есть список задач, где для каждого пункта дан список подходящих пакетов – к примеру, задача построения временных рядов.
Кроме CRAN, есть хранилище bioconductor, в котором хранятся пакеты для анализа высоконагруженных геномных данных – также как, например, на github и bitbucket. Установить пакеты из этих хранилищ можно с использованием пакета devtools.
Найти подходящий пакет может быть тяжело, но, к счастью, поиск в CRAN, на github и bitbucket становится проще с сайтами Rdocumentation и inside-R. И всегда можно подсмотреть в этот список полезных пакетов для R.
В заключение: начав работать с R, вы быстро почувствуете головную боль из-за зависимостей пакетов. Столкнувшись с проблемой – воспользуйтесь packrat (см. видеоурок) или checkpoint. Если вы пользуетесь операционной системой Windows, обновить R можно функцией updateR() из пакета installr.
Импорт данных в R
Данные, которые вы собираетесь анализировать в R, могут быть представлены практически в любом формате: плоские файлы (flat files, без внутренней иерархии), файлы данных для статистического программного обеспечения, базы данных, веб-данные.
Тип данных определяет выбор подхода к их импорту. Курс Импорт данных в R (по подписке), этот пост о вопросе импорта данных и этот вебинар от RStudio помогут получить больше понимания.
- Плоские файлы (flat files) – это обычные текстовые файлы, содержащие данные в табличном виде. Базовые средства языка R предоставляют возможность импортировать такие файлы как таблицы, используя функции read.table() и read.csv() из пакета utils. Ту же задачу решает отдельный пакет – readr, быстрый и простой в использовании – более лаконичный и производительный, чем utils (больше информации); а также функция fread() из пакета data.table (инструкция).
- Если вам нужно загрузить excel-файл в R, хорошей идеей будет воспользоваться пакетом readxl. В качестве альтернативы можно рассмотреть пакеты gdata и XLConnect. Последний работает как «мост» между Excel и R, позволяя вам выполнять любые действия с данными, доступные в Excel, непосредственно в R. Здесь — больше подробностей об импорте excel-файлов.
- Программы для обработки данных, такие как SAS, STATA и SPSS пользуются собственными форматами данных. Пакет haven от Хэдли Викхэма поможет с лёгкостью импортировать такие данные в R. Другой вариант – пакет foreign, который работает с такими экзотическими форматами, как, например, Systat и Weka. Он также позволяет экспортировать данные в различные форматы. (Совет: если вы переключаетесь с работы в SAS, SPSS или STATA на язык R, познакомьтесь с этим руководством Боба Мюнхена (только по подписке)).
- Пакеты, позволяющие импортировать данные из реляционных баз данных, подбираются исходя из типа базы данных. Если вы хотите подключить MySQL, вам нужен пакет RMySQL. Для других типов баз данных есть пакеты RpostgreSQL и ROracle. Полезные функции языка R, которые можно использовать для доступа и управления базой данных, собраны в пакете DBI.
- Если вы хотите собирать информацию из интернета, вам нужно установить соединение между R и API ресурсе, или воспользоваться специальными пакетами-«сборщиками», такими как rvest. В блоге Рольфа Фредхайма есть отличный материал, который поможет вам освоиться с задачами такого рода.
Обработка данных
Превращение сырых данных в хорошо организованные – важный этап, без которого невозможен качественный анализ. В R уже есть множество возможностей для обработки данных, но ими не всегда просто пользоваться. К счастью, существует большое число отличных пакетов, которые помогут вам:
- Пакет tidyr позволит вам привести данные «в порядок». Порядок значит, что каждая колонка выступает в качестве переменной, а каждая строка – в качестве наблюдения. Таким образом, этот пакет приводит ваши данные в наиболее удобный для работы вид. На этом отличном ресурсе можно узнать больше о том, как привести данные в порядок, используя пакет tidyr.
- Если вы хотите проводить операции со строками, вам стоит узнать больше о пакете stringr. Его краткое описание очень доступно и содержит много примеров, которые позволят вам быстро освоиться с пакетом.
- dplyr – отличный пакет для работы с фреймами данных как объектом (в памяти и вне её). В нём сочетаются скорость работы и крайне интуитивный синтаксис. Узнать больше о пакете dplyr можно в этом курсе об обработке данных (требуется подписка), а также в шпаргалке.
- Для выполнения тяжёлых задач обработки данных незаменим пакет data.table. Он невероятно быстр, и освоившись с синтаксисом пакета, вы вдруг обнаружите, что используете его постоянно. Этот курс по анализу данных (требуется подписка) прольёт больше света на особенности пакета, а дополнением к нему станет шпаргалка.
- Возможно, в какой-то момент вы застанете себя за работой с временем и датами. Не скроем, это может быть тяжёлый опыт, но, к счастью, пакет lubridate способен немного облегчить задачу. Познакомьтесь с его кратким описанием, чтобы лучше понимать, как использовать его в повседневном анализе.
- Базовый R очень ограничен в работе с временными рядами. К счастью, существуют пакеты zoo, xts и quantmod. Это руководство от Эрика Зиворта поможет лучше понять, как пользоваться этими пакетами, и как работать с временными рядами в R в целом.
Если вам нужен более обстоятельный обзор возможностей обработки данных с R, его можно получить в книге Обработка данных в R, или в видео Обработка данных в R от RStudio. Если у вас технические проблемы с обработкой данных – посмотрите список из 15 простых решений.
Визуализация данных
Одна из особенностей языка R, которая делает его таким отличным инструментом – это возможности для визуализации данных. ggplot2, вероятно, самый известный пакет для визуализации данных, и обязателен к изучению для новичков! Всю нужную информацию для того, чтобы начать работу с ggplot2, можно найти на сайте http://ggplot2.org/ — а также в шпаргалке и книге, посвящённых пакету. Кроме того, на визуализацию рассчитаны пакеты ggvis (позволяет строить интерактивные графики для web – см. руководство (требуется подписка)), googleVis для взаимодействия с графиками Google (вы сможете воссоздать визуализацию из этого выступления на TED), Plotly для R и многие другие. В списке пакетов для задачи можете найти инструменты, подходящие именно вам, а если у вас есть проблемы с построением графиков – этот пост может помочь с ними справиться.
В R также есть отдельная задача обработки пространственных данных – она позволит создавать восхитительные карты, как, например, эта:
Для начала обратите внимание на пакет ggmap, позволяющий обрабатывать пространственные данные и отрисовывать их поверх статичных карт с таких ресурсов как Google Maps и Open Street Maps. В качестве альтернативы можно попробовать пакеты maptools, choroplethr или tmap. Ищете более подробное руководство – обратите внимание на материал Введение в визуализацию пространственных данных в R.
На визуализациях, сделанных в R, часто можно увидеть великолепные цветовые схемы, что отлично подходят графикам и картам. Если вы хотите добиться такой же красоты, то освойте пакет RColorBrewer и ColorBrewer.
Один из новейших инструментов для визуализации данных в R – это HTML-виджеты. HTML виджеты работают также, как графики в R, но они позволяют добавить интерактивности к визуализации – например, создавать динамические карты (leaflet), строить графики для временных рядов (dygraphs) или интерактивные таблицы (DataTables). Посмотрите на несколько отличных примеров HTML-виджетов из жизни, и исчерпывающую документацию для того, чтобы научиться создавать собственные (если не любите тексты – можно посмотреть видео).
Если вам нужно найти вдохновение для того, чтобы визуализировать данные – посмотрите на такие блоги, как FlowingData, посвящённые вопросам визуализации.
Наука о данных и машинное обучение в R
Существует много ресурсов, посвящённых использованию R в науке о данных. Список доступных онлайн курсов:
- Введение в статистику с R от Эндрю Конвея (по подписке)
- Анализ данных и статистический вывод
- Анализ данных в науках о жизни
- Специализация Наука о данных от университета Джона Хопкинса
Если вы предпочитаете читать, то обратите внимание на:
Как только вы займётесь машинным обучение в R – сразу поймаете себя на использовании таких пакетов как caret, rpart и randomForest. К счастью, есть несколько отличных ресурсов для изучения этих пакетов и машинного обучения в целом. Если вы только начинаете, это руководство поможет разобраться в кратчайшие сроки. Другие варианты – книги Освоение машинного обучения с R и Машинное обучение с R. Если вы ищете последовательное руководство, основанное на примерах из реальной жизни, обратите внимание на курс, посвящённый машинному обучению на Kaggle, и блог Wiekvoet.
Подготовка отчётов в R
R Markdown это формат, позволяющий легко создавать динамические документы, презентации и отчёты в R. Это замечательный инструмент для подготовки воспроизводимых отчётов об анализе данных, позволяющий сделать анализ более полезным и доступным для восприятия. R markdown основан на knitr и pandoc. При помощи R markdown, R позволяет генерировать итоговые документы, которые замещают код R результатами его работы. Эти документы могут быть представлены в html, word, pdf, ioslides и в других форматах. Вы можете даже создавать интерактивные документы R markdown, используя shiny. Это четырёхчасовое руководство по Подготовке отчётов с R Markdown (по подписке) познакомит вас с инструментом, а в дополнение можно пользоваться этой подсказкой.
Кроме R markdown, не забудьте познакомиться с Shiny. Shiny невероятно упрощает подготовку веб-приложений с R. Он позволят вам представить результаты анализа в виде интерактивного веб-приложения, без необходимости учить HTML, CSS или JavaScript. RStudio поддерживает отличный учебный ресурс, чтобы облегчить начало работы с Shiny, включая этот набор видео-руководств (выбирайте Essentials of Shiny Learning). Доступные и более продвинутые темы, а также отличный набор примеров.
Углублённое изучение R – (платные) онлайн курсы
DataCamp
DataCamp также предлагает доступ ко всем продвинутым курсам по R, включая следующие, за 25 долларов в месяц.
- R для пользователей SAS, SPSS и STATA
- Практическое введение в статистику с R
- Промежуточный R
- Импорт данных в R
- Обработка данных в R с пакетом dplyr
- Анализ данных в R, путь data.table
- Визуализация данных в R с пактом ggvis
- Визуализация данных в ggplot2 (1)
- Визуализация данных в ggplot2 (2)
- Введение в машинное обучение
- Подготовка отчётов с R Markdown
Udemy
Другая компания – Udemy. Хотя они не предлагают связку из видео и интерактивных сессий, как DataCamp, на сайте доступен большой объём видео уроков, покрывающих другие темы, связанные с R и статистикой. Читателям R-bloggers Udemy предлагает доступ к своим курсам по цене 15-30 долларов за курс – используйте код RBLOGGERS30 для дополнительной скидки в 30%. Вот некоторые из их курсов:
Продвинутые курсы R:
- Регрессионные
модели
- Комплексное линейное моделирование на R (15 часов видео)
- Линейная регрессия в R для специалистов по данным (7 часов)
- Линейные модели со смешанными эффектами в R (11 часов видео)
- Линейная регрессия, обобщенные линейные модели, обобщенные аддитивные модели с R (8 часов)
- Предсказательные модели с R (5 часов)
- Анализ временных рядов и прогнозирование в R (3 часа видео)
- Регрессия, сбор данных, анализ текстов и прогнозирование с использованием R (32 часа)
- Статистическое/машинное
обучение
- Байесовский анализ с R (12 часов видео)
- Буткамп Наука о данных и Машинное обучение с R (17 часов)
- Дерево решений – теория, применение и моделирование с R (5 часов)
- Сбор данных с R: От новичка до профессионала (12 часов)
- Машинное обучения от А до Я: практическое применения Python и R в науке о данных (40 часов)
- Прикладной многомерный анализ с R (13 часов видео)
- Визуализация
- Графики в R (ggplot2, plotrix, base R) – Визуализация данных с языком программировния R (5 часов видео)
- Визуализация многомерных данных с R (7 часов видео)
- Другие
темы
- Создание интерактивных веб-приложений с пакетом Shiny для R (8 часов)
- Больше о сборе данных с R (11 часов видео)
- Анализ текстов, скрэпинг и сентимент-анализ с R (4 часа видео)
- Текстовая аналитика на R (1 час)
- Основы анализа пространственных данных: Введение в ГИС с R и QGIS (2 часа)
- Анализ пространственных данных с R, QGIS & другими инструментами (4 часа)
- Программирование
на R
- Всеобъемлющий курс программирования на R (25 часов видео)
- Программирование на R для симуляции и метода Монте Карло (12 часов видео)
- Разработка статистически приложений в R (12 часов видео)
- Программирование на R от А до Я: R в науке о данных с примерами из практики (10 часов)
- Программирование на R: Продвинутая аналитика на R в науке о данных (6 часов)
Вводные курсы R:
- Введение в R (15 часов видео)
- Прикладная наука о данных с R (11 часов видео)
- R Уровень 1 – Анализ данных в R (6 часов видео)
- Изучаем программирование на R с чистого листа (2 часа видео)
- Статистика в R – Язык R для статистического анализа (3 часа видео)
- Машинное обучение и статистическое моделирование на R с примерами (3 часа видео)
- Введение в науку о данных (6 часов видео)
Statistics.com
Statistics.com это веб-сайт для обучения, с более чем сотней курсов по статистике, аналитике, поиску данных, анализу текстов, прогнозированию, анализу социальных сетей, пространственных данных и т.д.
Они предлагают читателям R-Bloggers сниженную цену в 399 долларов за любой из их 23 курсов по R, Python, SQL или SAS. Это курсы с высокой отдачей, каждый длится по 4 недели (обычная стоимость – 589 долларов). Они предлагают практические упражнения и проекты, а также возможность получить ответы онлайн от таких экспертов, как Пол Мюррелл (участник команды разработки R core), Крис Брансдон (один из разработчиков пакета GISTools), Бен Баумер (бывший статистик бейсбольной команды Mets из Нью-Йорка) и другие. Эти инструкторы ответят на все ваши вопросы (на закрытом форуме) в четырёхнедельный период.
Вы можете использовать код «R-Blogger16» при регистрации. Можно зарегистрироваться на любой курс по R, Python, Hadoop, SQL или SAS, начинающихся в любое время. Список курсов, связанных с R:
Использование R в статистике:
- R для статистического анализа
- Моделирование в R
- Визуализация данных в R с использованием ggplot2
- Графики в R
- Логистическая регрессия
- Байесова статистика в R
Формирование навыков программирования на R
– для тех, кто знаком с R или другими языками разработки и средами для статистических вычислений:
- Программирование на R – Промежуточный уровень. Требуется год программирования на R для освоения программы курса.
- Программирование на R – Продвинутый уровень. Требуется два года опыта программирования на R для освоения программы курса.
Применение R в специфических задачах или приложениях:
- Прикладное прогнозирование
- SQL и R – Введение в запросы к базам данных
- Биостатистика в R с приложениями для клинических испытаний
- Сбор данных в R
- Картирование в R
- Анализ пространственных данных R
Вы можете выбрать любой из курсов по
R со страницы каталога:
www.statistics.com/course-catalog/
Дальнейшие шаги
Как только вы освоитесь с синтаксисом R (и станете зависимым от него), вам захочется использовать больше его возможностей (читай: делать по-настоящему крутые вещи). В этом случае – обратитесь к RCPP, пакету для R, который облегчает интеграцию с кодом C++, или к RevoScaleR (начните с бесплатного руководства).
Написав достаточно много кода на R (и став зависимым от него), вы достигнете точки, за которой вам захочется создавать собственные пакеты. Хилари Паркер из Этси написала короткое руководство по созданию пакетов, и если вы настроены серьёзно – стоит почитать книгу Хэдли Уикхэма Пакеты R, доступной в интернете бесплатно.
Если вы хотите изучить внутренние механизмы языка R и улучшить своё понимание, лучший способ достичь этого – прочитать книгу Продвинутый R.
Наконец, заходите к нам на R-bloggers.com снова, чтобы прочитать последние новости и руководства от блогеров из сообщества R.