Re: [R] inserting one backslash

From: Seth Falcon <sfalcon_at_fhcrc.org>
Date: Thu 02 Feb 2006 - 05:40:13 EST

On 1 Feb 2006, mailing-lists@rhkoning.com wrote:

> Hello, I am not very familiar with regular expressions and
> escaping. I need to replace the %-signs in a character vector with
> elements as "income 0%-33%# to be replaced by "income 0\%-33\%" (for
> later use in LaTeX). Using
>
> gsub("%","\\%","income 0%-33%")
>
> does not give the desired result. However, gsub("%","\\\\%","income
> 0%-33%") gives "income 0\\%-33\\%", one backslash too much. What is
> the appropriate expression to get the desired output (one backslash
> before each %-sign)?

I think you are on the right track with the second pattern "\\\\%". There is a difference between what print(s) will display and what cat(s) will display.

> gsub("%", "\\\\%", "income 0%-33%")
[1] "income 0\\%-33\\%"

> cat(gsub("%", "\\\\%", "income 0%-33%"), "\n")
income 0\%-33\%

The string "\\" in R contains one character (see nchar()), not two. It can be confusing.

HTH, + seth



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Thu Feb 02 05:58:20 2006

This archive was generated by hypermail 2.1.8 : Thu 02 Feb 2006 - 08:29:58 EST