On Thu, May 26, 2011 at 6:05 PM, Dennis Fisher <[email protected]> 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
______________________________________________
[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.