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: [email protected] Priv: [email protected]
______________________________________________
[email protected] 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.