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

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 » 26 июн 2020, 17:27

Добрый день!

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

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

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

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

Спасибо!
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

Аватара пользователя
antonv
Активный участник
Сообщения: 229
Зарегистрирован: 29 ноя 2016, 10:44
Репутация: 114
Откуда: Санкт-Петербург

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

Сообщение antonv » 26 июн 2020, 17:55

VistaSV30, а если попробовать:

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

which(string == "раз")

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 » 26 июн 2020, 18:49

Подскажите еще.
Если у меня такая таблица

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

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

Аватара пользователя
antonv
Активный участник
Сообщения: 229
Зарегистрирован: 29 ноя 2016, 10:44
Репутация: 114
Откуда: Санкт-Петербург

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

Сообщение antonv » 26 июн 2020, 19:47

VistaSV30,

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

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

gamm
Гуру
Сообщения: 4049
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 26 июн 2020, 21:41

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

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 » 27 июн 2020, 07:19

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

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

which(my_table == "аналогичный")[1]
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 » 27 июн 2020, 07:22

gamm писал(а):
26 июн 2020, 21:41
Читайте доки
Хотелось бы, всё почитать и самому найти ответ. Но видимо лень не даёт.
Раньше всё по книжкам искал, теперь вот проще на форуме спросить :wink:
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей