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.