На этой неделе мне довелось побывать на первой конференции "Effective Applications of the R Language (EARL)" ("Эффективные применения языка R"), организованной в Лондоне консалтинговой компанией Mango Solutions. В отличие от ежегодной конференции UseR, где обсуждаются в основном технические аспекты R, EARL была задумана как платформа, где ее участники смогли бы продемонстрировать примеры внедрения аналитических решений на основе R в бизнес-процессы и обменяться соответствующим опытом.

Началу конференции предшествовали два семинара - "Fast and flexible data wrangling with data.table" ("Быстрые и гибкие преобразования данных при помощи data.table) и "Getting the best of both worlds: Using Python for data wrangling and R for statistics" ("Лучшее из обоих миров: использование Python для преобразования данных и R - для статистики"). Поскольку в последнее время мне приходится работать со все большими объемами данных, я выбрал первый из этих семинаров. Как известно, размер объектов, с которыми можно комфортно работать в базовой версии R, ограничивается объемом доступной оперативной памяти. Более того, оперативная память расходуется очень неэффективно, т.к. R "любит" создавать временные копии имеющихся объектов при их изменении. Пакет data.table был создан Mэтом Доули (Matt Dowle) для обхождения этих ограничений при работе с большими таблицами данных. Процедуры, входящие в состав пакета, преобразуют таблицы данных непосредственно, без создания каких-либо дополнительных копий, и написаны на C++, что обеспечивает их быстродействие. Возможности пакета впечатляют (особенно такие опции, как быстрая загрузка больших таблиц в R (функция fread()), расчет обобщающих статистик для групп данных, и объединение (join) таблиц по временным рядам). Тем не менее, освоение синтаксиса data.table требует некоторого времени. 

Одним из приглашенных докладчиков, открывавших конференцию, был Хэдли Уикхэм (Hadley Wickham) - автор многочисленных приложений для R, включая такие популярные пакеты, как ggplot2, reshape2, plyr, и др. В своем докладе Хэдли представил возможности пакета dplyr, который, подобно data.table, предназначен для организации эффективной работы с большими таблицами данных. Хотя  в определенных ситуациях dplyr уступает data.table в быстродействии, разница эта невелика и, по моему субъективному мнению, полностью компенсируется удивительной простотой синтаксиса dplyr, которая обеспечивается использованием нового оператора пошаговых вычислений %>% (англ. pipe operator) из пакета magrittr. (Кстати, введение этого оператора уже называют самой большой инновацией в мире R за последнее время). Кроме того, важным свойством dplyr является возможность прямого подключения к базам данных нескольких распространенных типов и выполнения вычислений на стороне сервера (см. пример здесь).

Большинство докладов, представленных в ходе конференции, демонстрировали примеры использования R для решения бизнес-задач. Тематика этих примеров была очень широкой - от анализа трафика на сайте интернет-магазина до визуализации транспортных потоков в больших городах и предсказания исходов теннисных матчей. Во многих случаях подчеркивалось, что несмотря на свои широкие возможности для статистического анализа и визуализации данных, R трудно использовать для работы с большими данными в режиме реального времени. Однако это и не удивительно, поскольку язык R не создавался для таких целей. Тем не менее, сегодня существует большой выбор программных решений для устранения указанных ограничений. На выставочных стендах подобные решения представляли такие компании, как Hortonworks, Cloudera, Terradata и др.

Планируется, что конференция EARL станет ежегодной. Место и время проведения следующей конференции будут объявлены на ее сайте. Там же вскоре можно будет найти слайды презентаций, сделанных в этом году.

2 Комментарии

Unknown написал(а)…
dplyr также может работать с объектами класса data.table (см. справку к функции tbl_dt).
Анонимный написал(а)…
Круто! Сергей, очень рад за Вас!
Новые Старые