Глаголы R vs Операторы SQL

от автора

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

Еще больше интересных материалов по программированию и анализу данных мы публикуем каждый день у себя в телеграм канале и в группе ВК. Возможно, Вы найдете для себя что-то интересное 🙂

Однако, к делу!

R vs SQL

Первое, что имеет смысл сделать перед сравнением — освежить в памяти основные операторы SQL. Конечно, Вы все их помните, но вдруг…

Мы будем рассматривать DML (Data Manipulation Language) оператор SELECT и все, что с ним связано:

  1. Сам оператор SELECT регулирует, какие поля необходимо выбрать из таблицы

  2. Оператор FROM указывает на таблицу, из которой происходит выборка

  3. Оператор WHERE фильтрует таблицу по значениям того или иного столбца

  4. GROUP BY задает поля группировки для расчета агрегирующих характеристик

  5. Оператор ORDER BY сортирует строки таблицы по значениям в некотором столбце

Отлично, разобрались. Но причем здесь язык R? Все очень просто — библиотека dplyr языка R позволяет производить схожие операции (и даже намного более сложные), не устраивая метание между языками.

Удобство библиотеки dplyr (да и всего семейства пакетов tidyverse) обусловлено, в первую очередь, грамотной архитектурой:

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

  2. Функции dplyr работают с данными в парадигме tidy data

  3. Можно использовать пайплайны (конвейер %>%)

В таблице ниже мы отразили, как связаны основные операторы языка 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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *