[R] Replace only Capital Letters

Rau, Roland Rau at demogr.mpg.de
Fri Jul 23 17:07:45 CEST 2004


Dear all

thanks to the help of Prof. Brian Ripley, my little script is now working.
I use now:
gsub(pattern = " ([A-Z])", replacement = " {\\1}", x=exampledata, perl=TRUE)
instead of:
gsub(pattern = " ([A-Z])", replacement = " {\\1}", x=exampledata,
ignore.case=FALSE)

With regard to the question of Claus Ekstroem whether it is a problem of the
version of R I am running:
At work, I am using R 1.8.1 on Win32, at home I tried it with R 1.9.0 on
Linux (Mandrake10) but this did not yield any varying results.
However, it seems as if the version of R is relevant. In an older version
(R1.4.1) the "solution" did not work, because of the "unused argument(s)
(perl ...)".

Thanks again,
Roland


> -----Original Message-----
> From:	Prof Brian Ripley [SMTP:ripley at stats.ox.ac.uk]
> Sent:	Thursday, July 22, 2004 7:58 PM
> To:	Rau, Roland
> Cc:	'r-help at stat.math.ethz.ch'
> Subject:	Re: [R] Replace only Capital Letters
> 
> Another solution (that is correct in other locales than C, since I see 
> you are not in an English locale).
> 
> gsub(pattern = " ([[:upper:]])", replacement = " {\\1}", x=exampledata)
> 
> I think this _is_ the problem, as in your locale (and in en_GB) the sort 
> order is probably something like
> 
> aAbB...zZ
> 
> Or just try the C locale.
> 
> On Thu, 22 Jul 2004, Prof Brian Ripley wrote:
> 
> > This appears to be a bug.  Please try
> > 
> > gsub(pattern = " ([A-Z])", replacement = " {\\1}", x=exampledata,
> perl=TRUE)
> > 
> > 
> > 
> > On Thu, 22 Jul 2004, Rau, Roland wrote:
> > 
> > > Dear All,
> > > 
> > > I have these data:
> > > 
> > > exampledata <- c("This is one item", "This is Another One", "And so is
> > > This")
> > > 
> > > I would like to find each occurence of a blank space followed by a
> Capital
> > > Letter and replace it by a blank space, a left curly brace, the
> respective
> > > Capital Letter, and then a right curly brace.
> > > 
> > > I thought the following will do:
> > > gsub(pattern = " ([A-Z])", replacement = " {\\1}", x=exampledata,
> > > ignore.case=FALSE)
> > > 
> > > Unfortunately, the actual output was:
> > > "This {i}s {o}ne {i}tem"    "This {i}s {A}nother {O}ne" "And {s}o {i}s
> > > {T}his"  
> > > 
> > > But what I wanted was actually:
> > > "This is one item"    "This is {A}nother {O}ne" "And so is {T}his"  
> > > 
> > > Can anyone tell me what I should change. Should be fairly easy for
> people
> > > with more experience than me using regular expressions, I guess.
> > > 
> > > Thanks,
> > > Roland
> > > 
> > > P.S. The background is my bibliography-file for BibTeX. If the title
> field
> > > has some content like "An analysis of Denmark", it would actually turn
> out
> > > to be "An analysis of denmark" in my dvi-document. Of course, R is not
> the
> > > appropriate tool for this. But apart from the little problem outlined
> above,
> > > I had a function doing what I wanted in less than 10 minutes.
> > > 
> > > 
> > > +++++
> > > This mail has been sent through the MPI for Demographic
> Rese...{{dropped}}
> > > 
> > > ______________________________________________
> > > R-help at stat.math.ethz.ch mailing list
> > > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
> > > 
> > > 
> > 
> > 
> 
> -- 
> 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


+++++
This mail has been sent through the MPI for Demographic Rese...{{dropped}}




More information about the R-help mailing list