[R] Applying "toupper" to only portions of text strings

Phil Spector spector at stat.berkeley.edu
Fri May 27 00:24:11 CEST 2011


Dennis -
     Here's one way, using a somewhat obscure feature of perl
regular expressions, i.e. the \U and \L escape characters which
modify the case of the strings they appear in:

> TEXT    <- c("aaaa", "bbb|cc", "|ddd")
> sub('([a-z]*)(\\|?)([a-z]*)','\\U\\1\\2\\L\\3',TEXT,perl=TRUE)
[1] "AAAA"   "BBB|cc" "|ddd"

 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu



On Thu, 26 May 2011, Dennis Fisher wrote:

> Colleagues
>
> Assume that I have a vector containing some text strings, some of which contain a particular character.  I could like to apply "toupper" to the text before the character.  For example (in this case, "|" is the particular character):
>
> ORIGINAL:
> 	TEXT	<- c("aaaa", "bbb|cc", "|ddd")
>
> AFTER APPLICATION OF toupper:
> 	TEXT	<- c("AAAA", "BBB|cc", "|dddd")
>
> I could loop through each element, strsplit at the character, apply toupper to the first component, then paste each element together.  But, I hope that there is a simpler means to accomplish this.
>
> Thanks in advance.
>
> Dennis
>
>
> Dennis Fisher MD
> P < (The "P Less Than" Company)
> Phone: 1-866-PLessThan (1-866-753-7784)
> Fax: 1-866-PLessThan (1-866-753-7784)
> www.PLessThan.com
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list