Я хочу написать R-функцию (используя grep), которая позволяет мне делать точный шаблон, но мне трудно понять, как обозначить точный конец матча (используя $). Более конкретно, рассмотрим следующее:grep внутри внутри R-функция
data(mtcars)
mtcars$a <- row.names(mtcars)
mtcars[grep("Merc 450SL", mtcars$a), ]
[1] "Merc 450SL" "Merc 450SLC"
mtcars[grep("Merc 450SL$", mtcars$a), ]
[1] "Merc 450SL"
Итак, я хочу написать последний в функцию, где она включает точное соответствие шаблону, со знаком доллара. Я могу сделать простой поиск по шаблону (как в первом примере):
grep.f <- function(x){
b <- grep(x, mtcars$a, fixed=TRUE)
print(mtcars[b,"a"])
}
grep.f("Merc 450SL")
[1] "Merc 450SL" "Merc 450SLC"
функция, очевидно, дроссели, когда я меняю вторую строку b <- grep(x$, mtcars$a, fixed = TRUE)
, но я застрял о том, как я должен сделать это.
Заранее благодарен!
'Grep (paste0 (x, "$"), mtcars $ a, value = TRUE) ' – GSee
Это действительно умно, а надежность ответов (размещенных за считанные секунды) потрясающая. Спасибо! –
Вы также можете быть заинтересованы в 'match (x, mtcars $ a)' или 'intersect (x, mtcars $ a)' – GSee