web-dev-qa-db-fra.com

supprimer les parenthèses de la chaîne

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 ')''
25
mike

Échappez à la parenthèse avec une double barre oblique inverse:

gsub("log\\(", "", string)

(Obligatoire: http://xkcd.com/234/ )

53
Ben Bolker

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.

13
Josh O'Brien