Подтвердить что ты не робот

Выберите столбцы на основе нескольких строк с помощью 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

Что не так?

4b9b3361

Ответ 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'))