2017-06-19 1 views
0

J'ai une trame de données, et je veux trouver des caractères Especial donc je l'utilise:Recherche de caractères spéciaux en utilisant grepl?

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

Mais R dit:

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

Toute suggestion? Comment faire pour écrire le symbole *****?

+1

'Grepl ('**', '**', fixe = TRUE)' –

+0

Dans votre premier argument 'ifelse',' grepl ("*****", exemple $ aa) == T', vous n'avez pas besoin de '== T', comme' grepl ("*****", exemple $ aa) 'est suffisant. De même, il est préférable d'écrire "TRUE" plutôt que d'abréger "T", car il est possible d'écraser "T". Donc 'T <- FALSE' est une déclaration valide. – lmo

+0

merci beaucoup. –

Répondre

0

* est un méta caractère, utilisez le caractère d'échappement méta / pour le rechercher

grepl('/*', '***') 
[1] TRUE 
+4

Vous avez besoin de la barre oblique inverse, pas de la barre oblique. Et vous en avez besoin de deux. L'argument 'fixed = TRUE' suggéré par d.b. est préférable ici, puisque l'OP recherche un tas d'astérisques. Cela conduirait autrement à beaucoup de caractères d'échappement. – lmo

+0

Merci beaucoup, cela a fonctionné! –