R как сопоставить данные с точкой внутри, а также установить границы - PullRequest
0 голосов
/ 08 апреля 2020

Я использую 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$")], мы можем получить 23 без 234, но если шаблон 3,2, мы получим 3,2 и 342. Как встретить эти два стандарта одновременно?

1 Ответ

0 голосов
/ 08 апреля 2020

Вы можете использовать \\., чтобы указать . в своем коде. Если вы ищете любую строку, которая заканчивается на 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

...