如何用dplyr在R语言中过滤包含指定值的数据行
解决方案:过滤包含指定关键词的DataFrame行
示例数据构造
先还原你的示例DataFrame:
library(dplyr) library(stringr) # 构造示例数据 df <- tibble( Play = c( "Ben Simmons vs. Mark Williams (LaMelo Ball gains possession)", "P.J. Washington misses two point driving floating jump shot", "Spencer Dinwiddie defensive rebound", "Ben Simmons makes two point running finger roll layup", "Spencer Dinwiddie makes two point running layup (Ben Simmons assists)" ) )
dplyr 实现方法
使用filter()结合str_detect()(来自stringr包),通过正则表达式匹配任意目标关键词:
filtered_df <- df %>% filter(str_detect(Play, regex("makes|misses|rebound")))
这里regex("makes|misses|rebound")表示匹配包含三个关键词中任意一个的文本行,str_detect()返回布尔值,filter()只保留返回TRUE的行。
基础R 替代方法
如果不想加载dplyr,也可以用基础R的grepl()函数:
filtered_df <- df[grepl("makes|misses|rebound", df$Play), ]
grepl()基于正则表达式匹配,返回布尔向量,用于筛选DataFrame的行。
结果验证
执行后得到的filtered_df会包含以下4行:
P.J. Washington misses two point driving floating jump shot
Spencer Dinwiddie defensive rebound
Ben Simmons makes two point running finger roll layup
Spencer Dinwiddie makes two point running layup (Ben Simmons assists)
内容的提问来源于stack exchange,提问作者dfaberjob
相关产品推荐
相关产品推荐

