В современном мире спрос на продвинутую аналитику и Data Science растет все больше, и это закономерно. Бизнес и наука ежедневно генерируют гигабайты информации, которая содержит в себе полезные инсайты и ответы на многие вопросы – достаточно лишь разглядеть их за стеной лишнего информационного «шума».

Для обработки данных специалисты разных областей используют одни и те же инструменты:

  • Языки программирования: R, Python, SQL
  • Прикладные инструменты: Excel, сервисы аналитики
  • BI-системы: Tableau, Power BI, Plotly, Redash, Google Data Studio

В этом и заключается прелесть владения тем или иным языком программирования или сервисом – вне зависимости от области, в которой Вы работаете, Ваши знания и умения будут высоко цениться и котироваться.

В интернете есть большое количество материалов по каждому из этих инструментов, но в рамках данной статьи мы бы хотели уделить отдельное внимание языку R.

Давайте тезисно рассмотрим основные возможности языка R, которые могут пригодиться Вам в Ваших проектах и дальнейшей работе! Если же Вы уже и так работаете с ним, напишите в комментариях – для чего используете R именно Вы, какие задачи решаете и почему Вы выбрали для себя именно его?

Итак, начнем.

1. Загрузка данных

Никакой аналитический инструмент не имеет смысла, если он не интегрируется с большим количеством источников данных. Всевозможные таблицы в разных форматах – именно это и является основным ресурсом и хранилищем информации на сегодняшний день.

Язык R позволяет загрузить таблицы самых разных форматов – начиная с обычных текстовых txt-файлов и заканчивая, например, Oracle/Excel/Matlab форматами. Можно также произвести загрузку прям из интернета – достаточно указать URL-ссылку на файл.

Примеры

В рабочей директории у нас хранится файл ‘covid_19_clean_complete.csv’. Загрузим его с помощью штатной функции read.csv и посмотрим структуру полученных данных с помощью функции str:

пример загрузки данных

А теперь подгрузим таблицу напрямую из интернета (ссылка на датасет с Kaggle) с помощью все той же функции read.csv, только в качестве файла указывае URL-адрес:

пример загрузки данных

Еще одна интересная возможность – выбирать файлы интерактивно. То есть если Вы не знаете или не помните имя файла – используйте file.coose() все с тем же read.csv, и перед Вами выскочит окошко с возможностью выбора нужного файла.

2. Обработка данных

После того, как мы загрузили данные, начинается самое интересное – обработка. Зачастую это самый трудоемкий процесс среди всего аналитического этапа, поэтому чем удобней инструмент – тем приятней и проще будет Вам работать.

С какими сложностями в процессе обработки исследователь сталкивается чаще всего?

  • Загруженные данные необходимо очистить;
  • В данных есть пропуски – нужно их заполнить;
  • Сырые данные слишком неинформативны – нужны дополнительные группировки, фильтры и новые столбцы.

Язык R предоставляет целый ряд крутых пакетов для простой и интуитивно понятной работы с сырыми данными: dplyr, tidyr, tibble и другие. Используя эти и другие библиотеки, Вы сможете быстро писать понятный и читаемый код даже для самых сложных обработок.

Пример

Загружаем уже рассмотренный ранее датасет по коронавирусу COVID-19 из csv-файла, а далее всего за несколько строчек кода делаем следующие действия:

  • Находим только те строчки, в которых содержится информация по US;
  • Группируем по штатам;
  • Подсчитываем сумму Подтвержденных диагнозов, Смертей и Выздоровлений по каждому штату отдельно;
  • Добавляем дополнительный столбец – Процент смертности, рассчитываем по формуле Смерти/Подтвержденные диагнозы;
  • Сортируем таблицу по убыванию смертности.

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

3. Визуализация

Допустим, Вы уже закончили этап предобработки данных и теперь Вам нужно строить графики, чтобы сделать те или иные выводы или же просто элементарно поделиться результатами с коллегами.

Язык R обладает неплохой базовой графикой, однако, есть пакет ggplot2 и множество связанных с ним библиотек для построения продвинутых визуализаций.

Стандартная графика с помощью ggplot2 становится привлекательней, а возможности в более сложных задачах становятся коллосальными – Вы можете строить линейные графики/диаграммы/графики плоности/boxplot/скрипичные диаграммы/карты и многое-многое другое.

Добавив дополнительные пакеты, например, patchwork или plotly, Вы сможете комбинировать Ваши графики или даже строить интерактивные дашборды. Более того, все это Вы можете публиковать в интернете и делиться с Вашими коллегами!

Примеры

Загружаем наш датасет по коронавирусу, делаем элементарную предобработку:

  • Делаем группировку по датам, вне зависимости от страны;
  • Считаем итоговые значения Подтвержденных случаев, Смертей и Выздоровлений по каждой дате;
  • Добавляем текстовый столбец в формате «Дата – Количество смертей» для дальнейшего построения дашборда.

Далее переходим к созданию графика и представлению его в виде дашборда:

  • С помощью geom_col создаем диаграмму. Передаем информацию об осях, указываем цвета и заливку столбцов, а также даем ссылку на текстовый столбец, который мы создали ранее – это пригодится для дашборда;
  • Меняем тему графика на черно-белую;
  • Убираем подписи оси X, т.к. дат много и это выглядит громоздко. В принципе, можно отформатировать подпись к оси (например, вывести даты под углом или выводить каждую третью), но для краткости мы это опустим.

После этого подключаем библиотеку plotly (обертка известного BI-сервиса Plotly для языка R) и переводим обычный статический график в интерактивный дашборд:

Еще один пример – благодаря пакету patchwork мы можем размещать разные графики на одном полотне, и это не требует всего одну строчку кода!

Допустим, мы уже создали несколько графиков, которые называются gg1 и gg2. Разместим их друг под другом с помощью библиотеки patchwork:

4. Представление результатов своей работы

Как правило, аналитика ради аналитики – пустая трата времени. В основном, результаты проделанной работы должны быть переданы руководителю, коллегам или хотя бы просто опубликованы в общем доступе (например, если это какой-то исследовательский проект).

Еще один огромный плюс языка R – возможность наглядно продемонстрировать свои результаты «не отходя от кассы», т.е. не прибегая к сторонним инструментам.

Специальный онлайн-сервис для публикации своих результатов, разработка собственных веб-аналитических приложений с помощью специального пакета Shiny, написание статей и целых книг (в том числе их веб-версий) с интерактивными результатами выполнения кода, даже форматирование и раскраска таблиц – все это возможно сделать, просто подключив какой-нибудь пакет для R!

Примеры

Посмотрим, как выглядит таблица, которую мы получаем после обработки функциями библиотеки dplyr, и как эта же таблица будет выглядеть после всего пары строчек кода и библиотеки gt для форматирования таблиц.

Меньше 10 строчек, а сколько всего мы смогли сделать:

  • Сделали из простой таблицы красивый визуальный объект;
  • Добавили заголовок и подзаголовок;
  • Объединили несколько столбцов в одну группу;
  • Изменили число разрядов после запятой;
  • Раскрасили один из столбцов в зависимости от значений;
  • Добавили суммарные итоги.

Или вот еще один пример – руководство по использованию фреймворка RMarkdown для продвинутого создания книг, статей и отчетов. Да, и веб-версия этого руководства создана именно с использованием RMarkdown! Смотрим.

Ссылка

Эпилог

Мы рассмотрели далеко не все возможности языка R, а лишь малую их часть. Однако, даже по этим пунктам Вы уже могли понять, что язык крайне полезный и многоцелевой – владея им, Вы точно найдете, как его применить и монетизировать 🙂

Научиться анализу данных с помощью R можно на онлайн-курсе Бизнес-Анатилик от SF Education!