Реализация концепции аккуратных данных посредством Tidyverse

Автор: Хакимова Т.В.

Журнал: Теория и практика современной науки @modern-j

Рубрика: Основной раздел

Статья в выпуске: 6 (48), 2019 года.

Бесплатный доступ

В статье рассматривается реализация концепции аккуратных данных с использованием языка программирования R. Описываются пакеты, решающие основные задачи работы с данными на разных этапах анализа. Рассматривается структура Tidyverse.

Аккуратные данные, язык r

Короткий адрес: https://sciup.org/140274771

IDR: 140274771

Текст научной статьи Реализация концепции аккуратных данных посредством Tidyverse

Во время работы с данными часто возникает необходимость подготовить их под определенные задачи. Более того, большая часть анализа данных может сводиться именно к подготовке данных, по разным оценкам на подготовку данных для последующего анализа может уходить до 80% от общего времени решения задачи [1]. Результатом обработки данных также являются данные, представленные в том или ином виде, по этой причине важно соблюдать общие принципы их обработки и хранения.

Один из ключевых разработчиков RStudio – Хэдли Уикем в статье Tidy Data подробно описал основные принципы, которым должны отвечать аккуратные данные, а также выделил основные причины, по которым данные становятся не аккуратными [2].

Так по концепции Уикема выделяется три основных правила для придания данным вида аккуратных: переменные должны соответствовать столбцам таблицы, значения должны соответствовать строкам таблицы, набор данных должен иметь один тип.

Основой для реализации концепции аккуратных данных в языке R служат пакеты, разработанные в большей части Хэдли Уикемом и объединенные в пакет tidyverse. Актуальной версией пакета является версия 1.2.1, включающая в себя следующие пакеты: broom, cli, crayon, dplyr, dbplyr, forcats, ggplot2, haven, hms, httr, jsonlite, lubridate, magrittr, modelr, purr, readr, readxl, reprex, rlang, rstudioapi, rvest, stringr, tibble, tidyr, xml2, tidyverse [3].

В зависимости от выполняемых функций, важности и применимости, все пакеты можно условно разделить на те, которые составляют ядро tidyverse и те, которые являются дополнительными. В свою очередь пакеты ядра можно разделить по выполняемым функциям (рисунок 1).

Импорт        Хранение в р readr           аккуратной■ readxl             форме haven                tibble httr                  tidyr rvest xmI2

Программирование риги magrittr

Преобразование dplyr forcats hms lubridate String!

Визуализация ggplot2

Моделирование broom2 mode 1т

Рисунок 1 – Основные пакеты tidyverse, расположенные по решаемым задачам

Импортирование данных. Импортирование данных является сложным процессом, так как изначальные данные могут содержаться в разных форматах. Пакеты tidyverse позволяют работать с таблицами Excel, считывать данные формата JSON и XML, а также парсить сайты и работать с API.

Хранение данных в аккуратной форме. За данную процедуру отвечают два популярных пакета tibble и tidyr. Первый пакет позволяет работать с новым форматом датафрейма – tibble, второй – в значительной степени упрощает процесс получения аккуратных данных.

Преобразование данных. Вопрос преобразования данных, так же как и вопрос считывания, зависит от того, с какими данными ведется работа). Так, для работы с tibble-объектами, оптимальным является использование функций пакета dplyr, а для текстовых данных лучшим вариантом будет использование пакета stringr.

Визуализация данных. Для создания продвинутой программируемой графики уже долгий период времени используется пакет ggplot2, послуживший заменой пакету ggplot. Несмотря на «заточенность» языка программирования R под визуализацию данных [4], базовая графика имеет некоторую ограниченность, снимаемою концепцией ggplot2 по использованию слоев для построения рисунков, через соответствующие эстетики.

Моделирование. Моделирование в рамках концепции аккуратных данных в tideverse, в настоящее время, находится на начальной стадии. Оба пакета, применяемые для моделирования данных: broom и modelr, находятся в ранних версиях 0.5.2 и 0.1.4 соответственно.

Программирование. Особое место в анализе данных занимают пакеты, применяемые для программирования. Программирование не является составной частью анализа данных, но используется во многом, начиная от импортирования данных и заканчивая визуализацией. Ключевыми для реализации концепции Tidy Data является использование функционального программирования, реализуемого в пакете purrr и оператора pipeline, реализованного в magrittr.

Как видно из краткого обзора, пакеты tidyverse охватывают все части анализа данных и предлагают возможность конечному пользователю работать с аккуратными данными на каждой стадии анализа, начиная от подготовки аккуратных данных и заканчивая получением конечного результата и его визуализации при необходимости.

Список литературы Реализация концепции аккуратных данных посредством Tidyverse

  • Dasu, T., Johnson T. Exploratory Data Mining and Data Cleaning. - 2003. - Wiley-IEEE.
  • Wickham, H. Tidy Data. Journal of Statistical Software. - 2014. - V.59. - I. 10
  • Tidyverse packages - Tidyverse [Электронный ресурс] URL: https://www.tidyverse.org/packages/ (дата обращения 17.06.2019)
  • R: The R Project for Statistical Computing [Электронный ресурс] URL: https://www.r-project.org (дата обращения 17.06.2019)
Статья научная