Подтвердить что ты не робот

Как избежать вопросительного знака в R?

Я пытаюсь grep вектор строк, а некоторые из них содержат вопросительные знаки.

Я делаю:

grep('\?',vectorofStrings) и получить эту ошибку:

Error: '\?' is an unrecognized escape in character string starting "\?"

Как я могу определить правильную процедуру экранирования для??

4b9b3361

Ответ 1

Вам также нужно сбежать \:

vectorOfStrings <- c("Where is Waldo?", "I don't know", "This is ? random ?")
grep("\\?", vectorOfStrings)
#-----
[1] 1 3

Ответ 2

Используйте аргумент \\ или fixed = TRUE, как в:

vectorofStrings <-c("hello.", "where are you?",  "?")

grep('\\?',vectorofStrings)
grep('?',vectorofStrings, fixed=TRUE)

Ответ 3

Я бы предположил, что \ используется в R как обычный символ escape строки, поэтому для передачи литерала \ в grep вам может понадобиться \\?

Ответ 4

Мне не повезло с удалением обратной косой черты под окнами grep. Но мне удалось заставить его работать следующим образом:

grep [?]{3} *

То есть, я заключил знак вопроса в скобки символьного класса ([ и ]), что сделало особый смысл неактивным. Часть {3} не относится к вопросу, я использовал ее для поиска трех последовательных вопросительных знаков.