Фильтр dplyr, если столбец начинается с одной из строк в списке - PullRequest
0 голосов
/ 17 октября 2018

Наша цель: с помощью R dplyr отфильтровать строку, если данные в поле match_column начинаются с одного из кодов в code_list <- c ("123", "234", "456"). </p>

Следующее работает для статической строки (т. Е. Возвращает все строки из набора данных :: match_column, которые начинаются со статической строки «123».)

dataset1 <-filter(dataset, str_detect(match_column,"^123"))

После многочисленных попыток мы не можем понятьСинтаксис для замены «^ 123» на кодовый список.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 17 октября 2018

Мы можем paste строк с collapse, чтобы сделать filter для фильтрации строк столбца набора данных ('match_column'), у которых есть один из элементов в 'code_list'

library(tidyverse)
pat <-  paste0("^(", paste(code_list, collapse = "|"), ")")
dataset %>%
     filter(str_detect(match_column, pat))

Если это просто использовать один из элементов из 'code_list'

dataset %>%
     filter(str_detect(match_column, paste0("^", code_list[1])))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...