Учитывая фрейм данных:
df = data.frame(x = c("A:B","B:C","D","E","F"),
y = c("1","2","3","4","5"))
Как сохранить только строки, содержащие «:» в столбце x? Обычно я бы просто использовал dplyr::filter() для удаления строк, содержащих строку, но следующий код не работает:
df %>% filter(x %in% ":")
Кажется, что «:» может нарушать его, потому что он удаляет все строки, но я не могу понять, как еще указать «:» в R.
Редактировать: если есть другие символы, которые также вызывают эту проблему, то общее решение также было бы отличным!





df %>% filter(grepl(":", x))
В базе R: Мы могли бы добавить логику к параметру строки в скобках:
df[grepl(':',df$x),]
x y
1 A:B 1
2 B:C 2
вы также можете использовать
stringrдля улучшения читаемости кода:df %>% filter(str_detect(x,":"))