Страница 1 из 1

Поиск точного совпадения grep

Добавлено: 26 июн 2020, 17:27
VistaSV30
Добрый день!

Подскажите почему не получается найти только точное совпадение:

Код: Выделить всё

s <- c("раз", "раза", "разы")
grep("раз", s, value = T, fixed = T)
[1] "раз" "раза" "разы"

Функция возвращает все слова из вектора, где есть слово "раз", а мне нужно точное совпадение.
Или может быть нужно использовать другую функцию?

Спасибо!

Re: Поиск точного совпадения grep

Добавлено: 26 июн 2020, 17:55
antonv
VistaSV30, а если попробовать:

Код: Выделить всё

which(string == "раз")

Re: Поиск точного совпадения grep

Добавлено: 26 июн 2020, 18:49
VistaSV30
Подскажите еще.
Если у меня такая таблица

Код: Выделить всё

            V1           V2          V3
1   автомобиль   автомобиля автомобилей
2   автономная   автономных  автономных
3 автоцистерна автоцистерны автоцистерн
4  аналогичный  аналогичных аналогичных
5          был         было        было
6          был         были        были
То как в ней определить номер строки, где находится нужное слово?

Re: Поиск точного совпадения grep

Добавлено: 26 июн 2020, 19:47
antonv
VistaSV30,

Код: Выделить всё

which(my_table == "аналогичный", arr.ind=TRUE)
вернёт строку и столбец.

Re: Поиск точного совпадения grep

Добавлено: 26 июн 2020, 21:41
gamm
VistaSV30 писал(а):
26 июн 2020, 17:27
Подскажите почему не получается найти только точное совпадение:
Потому, что патерн поиска так написан. Поставьте в начале признак начала строки, а в конце признак конца строки. Читайте доки, и у меня в примере были.

Re: Поиск точного совпадения grep

Добавлено: 27 июн 2020, 07:19
VistaSV30
antonv писал(а):
26 июн 2020, 19:47
вернёт строку
Такой вариант тоже сработал:

Код: Выделить всё

which(my_table == "аналогичный")[1]

Re: Поиск точного совпадения grep

Добавлено: 27 июн 2020, 07:22
VistaSV30
gamm писал(а):
26 июн 2020, 21:41
Читайте доки
Хотелось бы, всё почитать и самому найти ответ. Но видимо лень не даёт.
Раньше всё по книжкам искал, теперь вот проще на форуме спросить :wink: