Какой язык использовать для анализа данных — это максимально избитая и больная тема. Поэтому мы объединились с Алексеем Селезневым, руководителем отдела аналитики в Netpeak и автором телеграм-канала R4Marketing, и подготовили сравнение операторов SQL и глаголов языка R. Для удобства и переносимости сделали это в карточках 🙂
Еще больше интересных материалов по программированию и анализу данных мы публикуем каждый день у себя в телеграм канале и в группе ВК. Возможно, Вы найдете для себя что-то интересное 🙂
Однако, к делу!

R vs SQL
Первое, что имеет смысл сделать перед сравнением — освежить в памяти основные операторы SQL. Конечно, Вы все их помните, но вдруг…
Мы будем рассматривать DML (Data Manipulation Language) оператор SELECT и все, что с ним связано:
-
Сам оператор SELECT регулирует, какие поля необходимо выбрать из таблицы
-
Оператор FROM указывает на таблицу, из которой происходит выборка
-
Оператор WHERE фильтрует таблицу по значениям того или иного столбца
-
GROUP BY задает поля группировки для расчета агрегирующих характеристик
-
Оператор ORDER BY сортирует строки таблицы по значениям в некотором столбце

Отлично, разобрались. Но причем здесь язык R? Все очень просто — библиотека dplyr языка R позволяет производить схожие операции (и даже намного более сложные), не устраивая метание между языками.
Удобство библиотеки dplyr (да и всего семейства пакетов tidyverse) обусловлено, в первую очередь, грамотной архитектурой:
-
Библиотека состоит из согласованного набора глаголов, каждый из которых отвечает за определенное действия, а различные комбинации их позволяют делать сложную обработку
-
Функции dplyr работают с данными в парадигме tidy data
-
Можно использовать пайплайны (конвейер %>%)

В таблице ниже мы отразили, как связаны основные операторы языка SQL и глаголы dplyr:

Само собой, было бы глупо полагать, что на этом скромном наборе функционал библиотеки dplyr заканчивается. Нет тут-то было, как говорится 🙂 Функций в этом пакете огромное множество, а в вспомогательных пакетах (т.к. dplyr все-таки является частью экосистемы tidyverse) еще больше. Вот несколько примеров:

Tidy data
Чуть ранее мы упомянули термин tidy data. Если Вы работаете в области анализа данных, то Вы знакомы с ним 100% и знаете основные принципы этой парадигмы как свои пять пальцев.
Но, если Вы ранее с ним не встречались, объясняем наглядно смысл концепции «аккуратных данных»:


Перефразируя великого русского писателя с оглядкой на Data Analysis:
Все «аккуратные» датасеты похожи друг на друга, но каждый «грязный» датафрейм грязный по-своему.
Вот именно эта схожесть всех tidy datasets между собой и делает библиотеку dplyr такой эффективной!
Кстати, подробнее концепция tidy data разбирается в этой статье.
Конвейер %>%
Еще одно интересное понятие, которое точно знакомо всем программистам на R — пайплайн или конвейер %>%. На этом, по сути, строится вся работа с пакетами tidyverse.
Классический способ объяснить смысл этой конструкции за минуту — показать шуточный пример.

Пакеты для работы с БД
Однако, если Вы все-таки очень хотите работать с данными сразу с помощью 2 языков: и R, и SQL, — то для Вас тоже есть решение. В языке R есть большое количество пакетов-коннекторов для различных БД, и Вы точно найдете что-то по душе.

ссылка на оригинал статьи https://habr.com/ru/post/552614/
Добавить комментарий