[R] gsub difficulty

Marc Schwartz marc_schwartz at comcast.net
Tue Sep 23 19:35:47 CEST 2008


on 09/23/2008 12:16 PM Charles Annis, P.E. wrote:
> Greetings R-ians:
> 
> I know what doesn’t work but I don’t know why, nor how to remedy things.
> 
> I have a character string containing "." which I want to replace with " "
> 
> gsub(".", " ", file.label) replaces the every character with a blank.
> 
> However gsub(".xls", " ", file.label) replaces ".xls" with a blank as
> expected.
> 
> It appears that "." is some kind of wild-card.  How do I tell gsub that a
> period is just a period?
> 
> Thanks.

A period is indeed a wild card, the interpretation meaning any character.

In your second example, the interpretation would be replace 'xls',
preceded by any character, with a space:

  > gsub(".xls", " ", "xlsAxls.xls")
  [1] "xls  "


To specify a period as an explicit character, you need to escape it,
which in R means double the escape character:

  > gsub("\\.xls", " ", "xlsAxls.xls")
  [1] "xlsAxls "

HTH,

Marc Schwartz



More information about the R-help mailing list