Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

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

Предыдущий урок был посвящен операциям со столбцами. На этот раз основное внимание будет уделено операциям со строками в dplyr .

Мы рассмотрим основы, включая сортировку и фильтрацию набора данных , а также агрегирование и суммирование записей . Чтобы дать вам общее представление о том, чего ожидать от этого урока, подумайте о сводной таблице в MS Excel.

Оглавление

Начиная

Откройте новый скрипт R в RStudio.

Как и в уроке по операциям со столбцами, в этой демонстрации будет использоваться пакет набора данных Lahman . Загрузите его, выполнив быстрый поиск в Google.

Чтобы перенести пакет Lahman в R, запустите library (Lahman) . Чтобы включить пакет dplyr , запустите библиотеку (tidyverse) . Кроме того, помните , что в соответствии с соглашениями об именах в R лучше всего использовать строчные буквы, поэтому назначайте Teams в team .

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Основные функции для операций со строками

1. Расположите строки в R

Первой операцией строки в dpyrr является аранжировка ( ) . Эта функция позволяет изменить порядок строк. Он работает, сначала упорядочивая фрейм данных df , а затем заданные поля.

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Например, отсортируем по teamID . Запускаем команду (teams, teamID) .

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Если вы хотите, чтобы они были расположены в порядке убывания, вам нужно использовать функцию desc() .

Например, если вы хотите выполнить сортировку по годам в порядке убывания, запустите «arrange(teams, desc(yearID))» .

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

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

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

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Когда вы сортируете строки, вы не меняете данные. Данные просто перемещаются. Ничего не добавляется и не удаляется.

2. Фильтровать строки в R

Функция фильтра ( ) добавляет или удаляет данные в зависимости от выбранных критериев. Его основной код:

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

В качестве примера, давайте получим все данные, где yearID больше или равен 2000. Следуйте формату функции фильтра и введите необходимую информацию. Затем запустите его. Не забудьте присвоить это новому объекту. В данном случае ему был присвоен современный .

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Чтобы проверить, действительно ли строки были отфильтрованы, вы можете использовать функцию dim() . Он дает количество строк и столбцов во фрейме данных.

Если вы запустите dim (teams) , вы увидите, что фрейм данных имеет 2955 строк и 48 столбцов.

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Если вы запустите функцию dim для modern , вы увидите, что количество строк сократилось до 630, а количество столбцов осталось прежним.

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Строки были усечены, поскольку некоторые записи выходят за пределы 2000 года.

Фильтровать строки по нескольким полям

В R также можно фильтровать строки по нескольким полям. Вам нужно будет использовать операторы AND и OR .

Например, давайте отфильтруем команды по области. В этом случае создается новый объект ohio . Критерии фильтрации заключаются в том, что teamID должен включать только Cleveland AND Cincinnati.

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Вам нужно использовать двойной знак равенства ( == ), чтобы проверить равенство. Если вы используете только один знак равенства, R будет рассматривать его как оператор присваивания. Используйте амперсанд ( & ) для представления AND.

Для проверки используйте функцию затемнения . Вы увидите, что количество строк равно 0.

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Это означает, что нет ни одной команды, в которой бы обе базировались в Кливленде и Цинциннати.

Далее, давайте попробуем Кливленд ИЛИ Цинциннати. Оператор ИЛИ представлен оператором вертикальной черты ( | ). Итак, все, что вам нужно сделать, это заменить амперсанд оператором конвейера, а затем запустить его. После этого снова запустите функцию затемнения .

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Вы увидите, что здесь 251 строка, а не ноль.

А что, если вы забудете использовать двойной знак равенства и вместо этого используете только один? Вот что происходит:

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

RStudio покажет в консоли очень полезное сообщение об ошибке, напоминающее вам об использовании двойного знака равенства.

3. Сгруппируйте и суммируйте строки в R

Функция группировки по ( ) позволяет агрегировать записи по выбранным столбцам, а затем на основе этой агрегации суммировать другой столбец.

Группировка по функции ( ) выполняется по следующему алгоритму:

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

В качестве примера сгруппируем по teamID и назначим его новому объекту. В этом случае новый объект называется team_ID . Затем распечатайте его.

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

В консоли вы заметите, что первая строка говорит, что это tibble .

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Тиббл — это значительное улучшение по сравнению с базовым фреймом данных . Это функция в пакете, которая дополняет и улучшает то, что доступно «из коробки».

Вторая строка — Группы . Итак, данные теперь сгруппированы по столбцу teamID.

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Теперь вы можете использовать функцию summ() для этих групп.

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

Примечание: функция суммирования может быть либо с s, либо с z, и будет зависеть от использования британского или американского варианта английского языка.

Например, давайте подведем итог по team_ID и получим базовую сводную статистику. Давайте найдем среднее, минимальное и максимальное количество побед для каждой команды. Не забудьте выделить весь код, прежде чем выбрать « Выполнить» .

Упорядочивание, фильтрация и группировка строк в R с помощью Dplyr

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


Фреймы данных в R: изучение основ
Уровни факторов в R: использование категориальных и порядковых переменных
Добавление, удаление и переименование столбцов в R с использованием dplyr

Заключение

Напомним, что были обсуждены две операции в dplyr. Предыдущее руководство было посвящено операциям со столбцами. Между тем, этот текущий урок показал вам, как выполнять операции со строками с помощью пакета dplyr в RStudio. В частности, вы узнали, как упорядочивать, фильтровать и группировать строки в R.

Следующее, чему нужно научиться, — это совмещать эти две операции. Использование всех функций, которые вы уже изучили, очень поможет вам в создании кода в R. Однако более полезным методом будет конвейер. Это поможет всему соединиться. Поэтому обязательно ознакомьтесь со следующими уроками.


Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

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

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

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

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать