Выбрать столбцы по регулярному выражению - PullRequest
0 голосов
/ 24 августа 2018

Я знаю, что есть много сообщений на эту тему, но я не смог найти ни одной, которая бы помогла.То, что я пытаюсь сделать, это просто.

Я хочу выбрать (или удалить) столбцы в зависимости от того, присутствует ли буква в имени столбца.

library(tibble)
library(stringr)
library(dplyr)

xy <- tibble("x" = 1:5, "123" = 6:10, "x123" = 11:15)

#does not have expected output
> xy %>% select(-matches("[:alpha:]"))
# A tibble: 5 x 3
      x `123`  x123
  <int> <int> <int>
1     1     6    11
2     2     7    12
3     3     8    13
4     4     9    14
5     5    10    15

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

str_view_all(x, "[:alpha:]")

enter image description here

Я ищу решение, использующее stringr и dplyr, если это возможно.Кажется, это должно быть очень просто.

1 Ответ

0 голосов
/ 24 августа 2018

[:alpha:] - это класс символов POSIX, который действителен только внутри выражения в скобках.Поэтому вам нужна дополнительная пара скобок:

xy <- tibble("x" = 1:5, "123" = 6:10, "x123" = 11:15)

xy %>% select(-matches("[[:alpha:]]"))

Результат:

# A tibble: 5 x 1
  `123`
  <int>
1     6
2     7
3     8
4     9
5    10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...