or even shorter TEXT <- c("aaaa", "bbb|cc", "|ddd") gsub("(^.*[|])","\\U\\1",TEXT,perl=T)
Am 27.05.2011 00:24, schrieb Phil Spector: > 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 > spec...@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@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. >> > > ______________________________________________ > R-help@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. -- Eik Vettorazzi Department of Medical Biometry and Epidemiology University Medical Center Hamburg-Eppendorf Martinistr. 52 20246 Hamburg T ++49/40/7410-58243 F ++49/40/7410-57790 ______________________________________________ R-help@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.