Поиск особого символа с помощью grepl?

У меня есть кадр данных, и я хочу найти специальные символы, поэтому я использую:

 example$bb <- ifelse(grepl("*****", example$aa)==T, 1, 0)

Но Р говорит:

Error in grepl("*****", example$aa : 
invalid regular expression, reason 'Invalid use of repetition operators'

Любое предложение? Как написать символ *****?


person Micael Salomon    schedule 19.06.2017    source источник
comment
В вашем первом аргументе для ifelse, grepl("*****", example$aa)==T вам не нужно ==T, так как достаточно grepl("*****", example$aa). Кроме того, лучше писать TRUE, а не сокращать до T, так как можно перезаписать T. Таким образом, T <- FALSE является допустимым утверждением.   -  person lmo    schedule 19.06.2017


Ответы (1)


* — это метасимвол, используйте escape-метасимвол / для его поиска.

grepl('/*', '***')
[1] TRUE
person Mouad_Seridi    schedule 19.06.2017
comment
Вам нужна обратная косая черта, а не косая черта. А нужно их два. Аргумент fixed =TRUE, предложенный д.б. здесь предпочтительнее, так как ОП ищет кучу звездочек. В противном случае это привело бы к большому количеству escape-символов. - person lmo; 19.06.2017