Как использовать select_if с несколькими условиями в dplyr


Вы можете использовать следующий базовый синтаксис с функцией select_if() пакета dplyr для выбора столбцов во фрейме данных, который соответствует одному из нескольких условий:

 df %>% select_if( function (x) condition1 | condition2)

Следующие примеры показывают, как использовать этот синтаксис на практике.

Пример 1. Использование select_if() с типами классов

В следующем коде показано, как использовать функцию select_if() для выбора столбцов во фрейме данных, имеющих символьный или числовой тип класса:

 library (dplyr)

#create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                 conference=as. factor (c('W', 'W', 'W', 'E', 'E')),
                 points_for=c(99, 90, 86, 88, 95),
                 points_against=c(91, 80, 88, 86, 93))

#select all character and numeric columns
df %>% select_if( function (x) is. character (x) | is. numeric (x))

  team points_for points_against
1 A 99 91
2 B 90 80
3 C 86 88
4 D 88 86
5 E 95 93

Обратите внимание, что односимвольный столбец ( Team ) и два числовых столбца ( Points_for и Points_against ) возвращаются, а столбец факторов ( Conference ) не возвращается.

Пример 2. Использование select_if() с типами классов и именами столбцов.

В следующем коде показано, как использовать функцию select_if() для выбора столбцов во фрейме данных, которые имеют тип факторного класса или имя столбца Points_for :

 library (dplyr)

#create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                 conference=as. factor (c('W', 'W', 'W', 'E', 'E')),
                 points_for=c(99, 90, 86, 88, 95),
                 points_against=c(91, 80, 88, 86, 93))

#select all factor columns and 'points_for' column
df %>% select_if( function (x) is. factor (x) | all(x == .$points_for))

  conference points_for
1 W 99
2W 90
3 W 86
4 E 88
5 E 95

Обратите внимание, что возвращаются однофакторный столбец и столбец с меткойpoints_for .

Примечание : | Символ — это логический оператор «ИЛИ» в R. Не стесняйтесь использовать столько | символы, поскольку вы хотите выбрать столбцы, используя более двух условий.

Дополнительные ресурсы

В следующих руководствах объясняется, как использовать другие распространенные функции в dplyr:

Как использовать функциюthrough() в dplyr
Как использовать функцию relocate() в dplyr
Как использовать функцию среза() в dplyr

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

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