On Fri, Dec 17, 2010 at 4:38 PM, William Dunlap <wdun...@tibco.com> wrote:
> Also, gsub() can change the case of part a string --
> use perl=TRUE and \\U or \\L (and perhaps \\E) in
> the replacement string.  E.g., capitalize color names
> with
>  > gsub(paste(sep="", "(", paste(colors(),collapse="|"), ")"),
>    "\\U\\1",
>    "The quick red Fox jumped over the lazy brown Dog",
>    perl=TRUE)
>  [1] "The quick RED Fox jumped over the lazy BROWN Dog"
>

Nice example. Here are two ways to do it with gsubfn:

library(gsubfn)
phrase <- "The quick red Fox jumped over the lazy brown Dog"

# 1
gsubfn("\\w+", ~ if (tolower(x) %in% colors()) toupper(x) else x, phrase)

# 2
# Colors is a list with lower case values and upper case names
# Unlike the last one this will not capitalize mixed case, only lower

Colors <- as.list(setNames(toupper(colors()), colors()))
gsubfn("\\w+", Colors, phrase)



-- 
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.

Reply via email to