R如何将数据与内部的点进行匹配,并设置边界



我使用grepl和str_detect来匹配数据,但有些变量内部有一个点,有些没有,我不知道哪个有哪个没有。我们还需要在末尾设置一个边界$。例如

query<-c("3.2","345","1.5","23")
data<-c("342","3.2","34","1.5","165","234","345")

因此,如果data[which(grepl(x=data,pattern="3.2",value=TRUE)]我们可以得到3.2,但如果模式是23,我们将得到23和234所以我使用data[which(grepl(x=data,pattern="23$")]如果没有234,我们可以得到23,但如果模式是3.2,我们将得到3.2和342。如何同时满足这两个标准?

您可以使用\.在代码中指定.。如果您正在寻找任何以3.2结尾的字符串,下面的代码会起作用:

vec <- c('342','3.2','34','1.5','165','234','345', '3.22', '193.2', '232')
> grep(pattern = '.*3\.2$', x = vec, ignore.case = T, value = T)
[1] "3.2"   "193.2"

您可以在以下位置阅读有关表达式的更多信息:https://cran.r-project.org/web/packages/stringr/vignettes/regular-expressions.html

最新更新