[R] inserting one backslash

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Feb 1 19:24:36 CET 2006


On Wed, 1 Feb 2006, RH Koning 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

You are confusing the object and the printed representation: see ?regexp.

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

You really do want the object which prints in R "income 0\\%-33\\%".

> 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 am using R 2.1.0 on suse linux 9.2.

Time for an undate (not that it affects this, but how objects print has 
been changed).

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list