如何使用dplyr过滤精确匹配字符串
我有datatable datatmp如何使用dplyr过滤精确匹配字符串,r,R,我有datatable datatmp datatmp Code Desc Z00.1 Description1 Z00 Description2 Z38 Description3 Z38.0 Description4 Z38.1 Description5 尝试使用以下方法仅过滤Z38代码 datatmp %>% dplyr::filter(str_detect(Code
datatmp
Code Desc
Z00.1 Description1
Z00 Description2
Z38 Description3
Z38.0 Description4
Z38.1 Description5
尝试使用以下方法仅过滤Z38代码
datatmp %>% dplyr::filter(str_detect(Code,'Z38'))
但得到以下结果,包括Z38.0和Z38.1
Code Desc
Z38 Description3
Z38.0 Description4
Z38.1 Description5
还尝试了datatmp%>%dplyr::filter(grepl('Z38',code,fixed=TRUE))
提供示例输出
注意:上面的例子我只提到了一个值,即过滤条件下的Z38,实际上这些值是动态的。示例Z38、Z00
请建议仅查找精确匹配项 您的grepl过滤器非常接近。将代码更改为:
datatmp %>% dplyr::filter(grepl("^Z38$", Code))
^符号表示字符串的开头(在本例中技术上不需要,$符号表示字符串的结尾,因此Z38.0将不匹配。如何:
datatmp%>%dplyr::filter(code='Z38')
如果您只需要“Z38”:datatmp%>%filter(code='Z38')
如果要基于多个值进行筛选:datatmp%>%filter(代码%c(“Z38”,“Z00”))
要动态框显的筛选条件您的意思是cond%filter(代码==cond)
?是,所选的cond请参考此url获取详细信息[链接]()