On Thu, May 26, 2011 at 6:05 PM, Dennis Fisher <fis...@plessthan.com> 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. >
Try this: > library(gsubfn) > gsubfn("^[^|]+", toupper, TEXT) [1] "AAAA" "BBB|cc" "|dddd" The regular expression starts from the beginning of the string (i.e. ^ ) and includes any immediately following characters that are not | (i.e. [^|]+ ). -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.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.