On May 27, 2011, at 00:05 , 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") >
How are you going to get that extra d in there? >;-) > 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. No, I think that is pretty much the plan. It's a one-liner, though: > sapply(strsplit(TEXT,"|", fixed=T),function(x){paste(c(toupper(x[1]),x[-1]),collapse="|")}) [1] "AAAA" "BBB|cc" "|ddd" OK, a _long_ one-liner... -- Peter Dalgaard Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd....@cbs.dk Priv: pda...@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.