#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(.)))