Невозможно выбрать

#r #dplyr

#r #dplyr

Вопрос:

Я хочу выбрать переменные символьного и целочисленного типа, используя функцию select_if dplyr. Но приведенный ниже код выдает ошибку.

 mpg %>% select_if(is.character | is.integer)
  

Как мне это решить?

mpg %>% select_if(is.character) один работает хорошо, как мне применить несколько условий?

Ответ №1:

Мы могли бы также использовать ~

 library(dplyr)
mpg %>% 
   select_if(~ is.character(.x)|is.integer(.x))
  

Или с inherits

 mpg %>% 
   select_if(~ inherits(.x, c("character", "integer")))
  

Ответ №2:

Одним из способов было бы использовать анонимную функцию

 library(dplyr)

mpg %>% select_if(function(x) is.character(x) | is.integer(x))

#   manufacturer model       year   cyl trans      drv     cty   hwy fl    class  
#   <chr>        <chr>      <int> <int> <chr>      <chr> <int> <int> <chr> <chr>  
# 1 audi         a4          1999     4 auto(l5)   f        18    29 p     compact
# 2 audi         a4          1999     4 manual(m5) f        21    29 p     compact
# 3 audi         a4          2008     4 manual(m6) f        20    31 p     compact
# 4 audi         a4          2008     4 auto(av)   f        21    30 p     compact
# 5 audi         a4          1999     6 auto(l5)   f        16    26 p     compact
# 6 audi         a4          1999     6 manual(m5) f        18    26 p     compact
# 7 audi         a4          2008     6 auto(av)   f        18    27 p     compact
# 8 audi         a4 quattro  1999     4 manual(m5) 4        18    26 p     compact
# 9 audi         a4 quattro  1999     4 auto(l5)   4        16    25 p     compact
#10 audi         a4 quattro  2008     4 manual(m6) 4        20    28 p     compact
# … with 224 more rows
  

ИЛИ с помощью funs

 mpg %>% select_if(funs(is.character(.) | is.integer(.)))