Какой язык использовать для анализа данных — это максимально избитая и больная тема. Поэтому мы объединились с Алексеем Селезневым, руководителем отдела аналитики в Netpeak и автором телеграм-канала R4Marketing, и подготовили сравнение операторов SQL и глаголов языка R. Для удобства и переносимости сделали это в карточках 🙂
Еще больше интересных материалов по программированию и анализу данных мы публикуем каждый день у себя в телеграм канале и в группе ВК. Возможно, Вы найдете для себя что-то интересное 🙂
Однако, к делу!
![](https://habrastorage.org/getpro/habr/upload_files/917/27f/114/91727f1145901138661a5f364c95dcfe.png)
R vs SQL
Первое, что имеет смысл сделать перед сравнением — освежить в памяти основные операторы SQL. Конечно, Вы все их помните, но вдруг…
Мы будем рассматривать DML (Data Manipulation Language) оператор SELECT и все, что с ним связано:
-
Сам оператор SELECT регулирует, какие поля необходимо выбрать из таблицы
-
Оператор FROM указывает на таблицу, из которой происходит выборка
-
Оператор WHERE фильтрует таблицу по значениям того или иного столбца
-
GROUP BY задает поля группировки для расчета агрегирующих характеристик
-
Оператор ORDER BY сортирует строки таблицы по значениям в некотором столбце
![](https://habrastorage.org/getpro/habr/upload_files/6a4/f87/958/6a4f8795859c6c388dae482830261c7a.png)
Отлично, разобрались. Но причем здесь язык R? Все очень просто — библиотека dplyr языка R позволяет производить схожие операции (и даже намного более сложные), не устраивая метание между языками.
Удобство библиотеки dplyr (да и всего семейства пакетов tidyverse) обусловлено, в первую очередь, грамотной архитектурой:
-
Библиотека состоит из согласованного набора глаголов, каждый из которых отвечает за определенное действия, а различные комбинации их позволяют делать сложную обработку
-
Функции dplyr работают с данными в парадигме tidy data
-
Можно использовать пайплайны (конвейер %>%)
![](https://habrastorage.org/getpro/habr/upload_files/9aa/720/bb3/9aa720bb329a0ee3975da45732954d59.png)
В таблице ниже мы отразили, как связаны основные операторы языка SQL и глаголы dplyr:
![](https://habrastorage.org/getpro/habr/upload_files/536/31c/619/53631c619ddad1b326824887f28e86ee.png)
Само собой, было бы глупо полагать, что на этом скромном наборе функционал библиотеки dplyr заканчивается. Нет тут-то было, как говорится 🙂 Функций в этом пакете огромное множество, а в вспомогательных пакетах (т.к. dplyr все-таки является частью экосистемы tidyverse) еще больше. Вот несколько примеров:
![](https://habrastorage.org/getpro/habr/upload_files/286/364/994/286364994bc3b1f9dd15c22d56ff7638.png)
Tidy data
Чуть ранее мы упомянули термин tidy data. Если Вы работаете в области анализа данных, то Вы знакомы с ним 100% и знаете основные принципы этой парадигмы как свои пять пальцев.
Но, если Вы ранее с ним не встречались, объясняем наглядно смысл концепции «аккуратных данных»:
![](https://habrastorage.org/getpro/habr/upload_files/ab7/45f/f6e/ab745ff6e056f4859272ae992ab9b5e4.png)
![](https://habrastorage.org/getpro/habr/upload_files/26f/848/04f/26f84804ff854466642a608babaea2b9.png)
Перефразируя великого русского писателя с оглядкой на Data Analysis:
Все «аккуратные» датасеты похожи друг на друга, но каждый «грязный» датафрейм грязный по-своему.
Вот именно эта схожесть всех tidy datasets между собой и делает библиотеку dplyr такой эффективной!
Кстати, подробнее концепция tidy data разбирается в этой статье.
Конвейер %>%
Еще одно интересное понятие, которое точно знакомо всем программистам на R — пайплайн или конвейер %>%. На этом, по сути, строится вся работа с пакетами tidyverse.
Классический способ объяснить смысл этой конструкции за минуту — показать шуточный пример.
![](https://habrastorage.org/getpro/habr/upload_files/b3d/8d3/eba/b3d8d3ebac5f3a900fcbf8fccd49cd2c.png)
Пакеты для работы с БД
Однако, если Вы все-таки очень хотите работать с данными сразу с помощью 2 языков: и R, и SQL, — то для Вас тоже есть решение. В языке R есть большое количество пакетов-коннекторов для различных БД, и Вы точно найдете что-то по душе.
![](https://habrastorage.org/getpro/habr/upload_files/65d/369/aaf/65d369aaf5fadc604c4c5b354e512b5e.png)
ссылка на оригинал статьи https://habr.com/ru/post/552614/
Добавить комментарий