как отфильтровать в R без указания всех значений

#r #filter

Вопрос:

У меня есть большой файл данных в R, и я хочу отфильтровать один столбец. Проще говоря, это выглядит так: и я хочу отфильтровать только значения, начинающиеся с GR…но без указания всех значений bc, их много, и они меняются. Не могли бы вы, пожалуйста, помочь мне? Спасибо

введите описание изображения здесь

Ответ №1:

С grepl тобой можно было бы сделать:

 dd <- data.frame(
  x1 = c("A", "B", "C", "GRTY", "GRkL", "G")
)
dd[grepl("^GR", dd$x1),, drop = FALSE]
#>     x1
#> 4 GRTY
#> 5 GRkL
 

Ответ №2:

Вы можете использовать filter и str_detect из tidyverse :

 library(tidyverse)
df = data.frame(x1 = c("A", "B", "C", "GRTY", "GRkL", "G"))
df %>% 
        filter(str_detect(x1, pattern = "GR"))
 

Выход:

     x1
1 GRTY
2 GRkL