如何在R语言dplyr中筛选列含独立单词air的数据行
筛选数据框中某列包含独立单词
air的行 先看原始数据:
library(dplyr) df <- data.frame(x = c(13, 34, 5, 124, 56), y = c('air transport', 'hairdressing', 'airport', 'repair', 'frontend'))
直接用grepl('air', y)会匹配所有包含air子串的内容,得到结果:
x y 1 13 air transport 2 34 hairdressing 3 5 airport 4 124 repair
如果要只保留air作为独立单词的行,需要用正则表达式的单词边界符\\b限定匹配范围,确保air不是其他单词的一部分。
正确代码如下:
df %>% filter(grepl('\\bair\\b', y))
运行后得到预期结果:
x y 1 13 air transport
说明
\\b在正则中代表单词边界,它会匹配air前后的非单词字符(比如空格、字符串首尾),这样就能精准匹配作为独立单词存在的air,排除像hairdressing、airport、repair这类包含air子串但不是独立单词的情况。
内容的提问来源于stack exchange,提问作者jmutua
相关产品推荐
相关产品推荐

