J'essaie de supprimer une parenthèse d'une chaîne dans R et de rencontrer l'erreur suivante:
string <- "log(M)"
gsub("log", "", string) # Works just fine
gsub("log(", "", string) #breaks
# Error in gsub("log(", "", test) :
# invalid regular expression 'log(', reason 'Missing ')''
Échappez à la parenthèse avec une double barre oblique inverse:
gsub("log\\(", "", string)
(Obligatoire: http://xkcd.com/234/ )
La réponse de Ben vous donne la bonne manière généralement applicable de le faire.
Alternativement, dans votre situation, vous pouvez utiliser l'argument fixed=TRUE
, Comme ceci:
gsub("log(", "", string, fixed=TRUE)
# [1] "M)"
Il convient lorsque l'argument pattern
de gsub()
est une chaîne de caractères contenant la séquence littérale de caractères que vous recherchez. Ensuite, c'est bien car il vous permet de taper le motif exact que vous recherchez, sans échappements, etc.