20.09.2015 20:54
Александр МатруничДр.Джим МасМаркус КайнуЭдуард Моппель
ИТ-прогресс приумножил объёмы регистрируемых, передаваемых и хранимых данных. Гаджеты, приложения и веб-сервисы многогранно обслуживают жизнь людей и организаций: от подсчёта энергозатрат во время утренней пробежки — до оценки прибыльности портфеля.
Провал Nokia в автономной разработке приложений для своих телефонов и успех Google в интегрированном наполнении каталога пользовательских приложений для Android подтверждают, что сегодня компания в одиночку, без участия профессионального сообщества, не удовлетворяет потребности клиентов в обработке данных.
Свидетельства продуктивной деятельности сообществ разработчиков в поиске решений для удовлетворения всевозможных потребностей пользователей — магазины мобильных приложений Google Play и Apple AppStore, энциклопедия Wikipedia, семейство операционных систем GNU/Linux, среда обработки данных R.
Со времени своего появления (1992) R интегрирует экспертов по обработке данных. Язык программирования R позволяет выразить любую статистическую формулу — это способ общения аналитиков и статистиков со всего мира.
Он адекватен любым новым алгоритмам анализа, подходам к моделированию или к визуализации данных.
Резиденты ведущих университетов отказываются от дорогих коммерческих решений в пользу бесплатной платформы R. Завтра компании будет легче найти специалиста по R, чем по коммерческим системам.
Современные средства глобального обмена знаниями — Stackoverflow, Twitter, блоги — ежедневно прирастают публикациями об R.
Это знание — в бесплатном доступе для любого желающего.
Структура программного пакета R — это общее ядро и тысячи расширений.
Поддержку и модернизацию R-ядра осуществляет комитет сменяемых выборных экспертов.
Расширения предоставляют разнообразный функционал: от эконометрики до распознавания спутниковых снимков, от работы с базами данных до распределённых паралелльных вычислений.
Такая структура позволяет пользователю формировать аналитическую среду, пригодную для конкретных нужд.
Создавать расширения и делать их доступными в открытой библиотеке R-пакетов (CRAN) могут любые пользователи и организации.
Пример 1: Компания выпускает сервер баз данных и для стимуляции спроса публикует расширение, которое позволяет R-пользователю работать с базой данных напрямую.
Пример 2: Учёный раз Работал новый алгоритм анализа. Он реализует его на языке R и публикует в виде расширения.
Такой цикл добавления и расширения функционала значительно короче, чем у коммерческих аналогов.
Ядро R распространяется как свободное программное обеспечение (СПО) с открытым исходным кодом под условиями лицензии (договор присоединения / акцепта) GNU General Public License.
Пользователь имеет право выполнять программу, изучать и модифицировать исходный код. Распространение модифицированных версий должно осуществляться на аналогичных условиях.
Расширения R могут распространяться под другими лицензиями, но подавляющее большинство пакетов также является общественным достоянием, т.е. СПО.
Особое внимание аудиту лицензий стоит уделять в случае, если планируется распространять/продавать продукты, включающие СПО.
Множество компаний предлагает продукты и услуги, связанные с R.
Инфраструктура среды R предлагает пользователю весь инструментарий, необходимый при обработке и анализе данных.
R умеет:
Технология Shiny позволяет создавать в R интерактивные отчёты в формате веб-страницы. Когда пользователь манипулирует элементами интерфейса, R пересчитывает все затрагиваемые показатели и обновляет отчёт.
В предлагаемом примере приложение скачивает данные с сайта Казахстанской фондовой биржи.
Исходный код приложения доступен в репозитории GitHub.
Приложение подготовлено Маркусом Кайну.
Слайды были подготовлены в визуальной среде разработки RStudio в формате RMarkdown. Формат позволяет создавать документы и слайды в виде простого текста, и внедрять в него куски исходного кода R. В процессе компилирования исходный код заменяется результатами его выполнения — таблицами и графиками. Финальный документ экспортируется в PDF, Word, веб-страницу.
Исходный код этих слайдов (без элементов R) доступен в репозитории GitHub.