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