Продолжение предыдущих публикаций «Инструменты DataScience как альтернатива классической интеграции ИТ систем» и
«Экосистема R как инструмент для автоматизации бизнес-задач».
Настоящая статья является ответом на возникшие вопросы по пакетам R, которые полезны для реализации описанных подходов. Я ее рассматриваю исключительно как справочную информацию, и отправную точку для последующего детального изучения заинтересовавшимися, поскольку за каждым пакетом скрывается огромное пространство со своей философией и идеологией, математикой и путями развития.
Как правило, все пакеты (9109 штук на 07.09.2016) находятся в репозитории CRAN. Те, что по тем или иным причинам, пока не опубликованы в репозиторий, могут быть найдены на GitHub. Итак, кратким списком:
Пакеты Hadley Wickham (Hadleyverse)
Детально про пакеты можно прочесть на репозитории GitHub
dplyr— расширения грамматических конструкций для манипуляций с данными. В качестве вводной статьи, я бы посоветовал "dplyr and pipes: the basics", несмотря на то, что опубликована она была в 2014-м годуggplot2— расширения грамматических конструкций для визуализации. Представление о возможностях можно получить в книге "Cookbook for R", глава "Graphs"scales— расширение ggplot2 для масштабирования осей графиковggmap— расширение ggplot2 для работы с картографиейlubridate— "магия" по работе с датами и временем. Идеология описана в статье "Dates and Times Made Easy with lubridate"readr— улучшенный импорт текстовых данных в Rforcats— улучшенная работа с категориальными переменнымиtibble— современное переосмысление штатной структуры данных data.framereadxl— импорт excel данных в Rpurrr— расширения грамматических конструкций для функционального программированияtidyr— улучшенная работа с "грязными" исходными данными. Идеология описана в статье "Tidy Data"reshape2— улучшенная трансформация данных. Идеология описана в статье "Reshaping Data with the reshape Package"stringr— улучшенная работа с текстовыми строкамиcurl— улучшенный подход для работы с данными по HTTPhttr— упрощенный подход по работе с данными по протоколу httpxml2— улучшенная работа по поддержке XML
Элементы программирования и работы с данными
futile.logger— развитая система логированияiterators— поддержка итераторовforeach— улучшенная поддержка циклических конструкцийmagrittr— грамматика работы с маршрутизацией данных (pipe)jsonlite— упрощенная поддержка JSONsp— поддержка работы с геоданнымиdata.table— расширение штатной модели данных data.frame для работы с большими даннымиbroom— преобразование данных стат. функций в формат tidy data (см. выше). Детально можно ознакомиться в статье broom: An R Package for Converting Statistical Analysis Objects Into Tidy Data Framesknitr— подготовка документов различных форматов (статика и интерактив, детальнее здесь) из единого формата R Markdown. В целом, это вообще отдельный мир.
Shiny и веб формы
shiny— сам фреймворкshinythemes— дополнительные темы (shiny построен на bootstrap)highcharter— враппер для highchartsgoogleVis— коннектор к Google Charts диаграмм. Детальнее здесь и здесьshinydashboard— наборы функций для построения дашбордов (немного устарел)flexdashboard— современный подход к построению дашбордов. Детально можно ознакомиться здесьshinyjs— дополнительный JS интерактивhtmlwidgets— поддержка html виджетов, галерея здесьplotly— интерфейс к интерактивной системе визуализации Plot.ly. Детально можно ознакомиться здесьleaflet— враппер для интерактивных карт JS leaflet. Детально можно ознакомиться здесьDT— враппер для интерактивных таблиц JS DataTable. Детально можно ознакомиться здесьrbokeh— R интерфейс к библиотеке визуализации Bokeh. Детально можно ознакомиться здесь
Цвета и темы
RColorBrewer— пакет для гибкой работы с цветамиviridis— цветовая палитра Virdis. Детали здесьwesanderson— еще палитраggthemes— темы для ggplot2. Детали здесь
В своей деятельности я еще использую 2-3 десятка других пакетов, но они имеют более узкую специфику, либо просто обеспечивают коннекты к внешним источикам (ODBC, No-SQL, git, dropbox, etc.)
Предыдущий пост: "Экосистема R как инструмент для автоматизации бизнес-задач"
Следующий пост: "Применение R для работы с утверждением «Кто виноват? Конечно ИТ!»"