Як використовувати 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:

Як використовувати функцію cross() у dplyr
Як використовувати функцію relocate() у dplyr
Як використовувати функцію slice() у dplyr

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *