В современном мире спрос на продвинутую аналитику и 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!