Remove parenthesis from a character string

I am trying to remove a parenthesis from a string in R and run into the following error:

string <- "log(M)"
gsub("log", "", string) # Works just fine
gsub("log(", "", string) #breaks
# Error in gsub("log(", "", test) : 
#   invalid regular expression 'log(', reason 'Missing ')''

Solution 1:

Escape the parenthesis with a double-backslash:

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

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

Solution 2:

Ben's answer gives you the good generally applicable way of doing this.

Alternatively, in your situation you could use the fixed=TRUE argument, like this:

gsub("log(", "", string, fixed=TRUE)
# [1] "M)"

It is appropriate whenever the pattern argument to gsub() is a character string containing the literal sequence of characters you are searching for. Then, it's nice because it allows you to type the exact pattern that you are searching for, without escapes etc.