Выберите столбцы на основе нескольких строк с помощью dplyr
Я хочу выбрать несколько столбцов на основе их имен с выражением регулярного выражения. Я пытаюсь сделать это с синтаксисом трубопровода пакета dplyr
. Я проверил другие темы, но нашел ответы только на одну строку.
С базой R:
library(dplyr)
mtcars[grepl('m|ar', names(mtcars))]
### mpg am gear carb
### Mazda RX4 21.0 1 4 4
### Mazda RX4 Wag 21.0 1 4 4
Однако он не работает с методом select/contains:
mtcars %>% select(contains('m|ar'))
### data frame with 0 columns and 32 rows
Что не так?
Ответы
Ответ 1
Вы можете использовать matches
mtcars %>%
select(matches('m|ar')) %>%
head(2)
# mpg am gear carb
#Mazda RX4 21 1 4 4
#Mazda RX4 Wag 21 1 4 4
Согласно документации ?select
'(x, ignore.case = TRUE): выбирает все переменные, name соответствует регулярному выражению "x
Хотя contains
работает с одной строкой
mtcars %>%
select(contains('m'))