[R] How to apitalize leading letters & else of personal names?

David Winsemius dwinsemius at comcast.net
Wed Dec 15 19:17:13 CET 2010


On Dec 14, 2010, at 9:00 PM, RockO wrote:

>
> Dear R world,
>
> Do you know about a function that would capitalize in the correct  
> manner
> first and family names?
> I found in the cwhmisc only the CapLeading function, but it just  
> does not do
> the job, taking care only to capitalize the first letter of a word.
>
> I am looking for a function that would recognize " |'|Mc|-" and  
> capitalize
> the first letter following these characters.
>
> An example:
> names<-c("jean-francois st-john","helene o'donnel", "joe mcintyre")
>
> Desired result:
>
>> "Jean-Francois St-John" "Helene O'Donnel" "Joe McIntyre"

Here are four individually crafted gsub functions that could be  
serially applied:

 > gsub("^([a-z])", "\\U\\1", names, perl=TRUE)
[1] "Jean-francois st-john" "Helene o'donnel"       "Joe mcintyre"

 > gsub(" ([a-z])", " \\U\\1", names, perl=TRUE)
[1] "jean-francois St-john" "helene O'donnel"       "joe Mcintyre"

 > gsub("\\-([a-z])", "-\\U\\1", names, perl=TRUE)
[1] "jean-Francois st-John" "helene o'donnel"       "joe mcintyre"

 > gsub("\\'([a-z])", "'\\U\\1", names, perl=TRUE)
[1] "jean-francois st-john" "helene o'Donnel"       "joe mcintyre"


 > t2 <- gsub("^([a-z])", "\\U\\1", names, perl=TRUE)
 > t2 <- gsub(" ([a-z])", " \\U\\1", t2, perl=TRUE)
 > t2 <- gsub("\\-([a-z])", "-\\U\\1", t2, perl=TRUE)
 > t2 <-  gsub("\\'([a-z])", "'\\U\\1", t2, perl=TRUE)
 > t2
[1] "Jean-Francois St-John" "Helene O'Donnel"       "Joe Mcintyre"

Oooops forgot the mc:
 > gsub("Mc([a-z])", "Mc\\U\\1", t2, perl=TRUE)
[1] "Jean-Francois St-John" "Helene O'Donnel"       "Joe McIntyre"

-- 
David.
>
> Thanks,
>
> Rock
>
>
> -- 
> View this message in context: http://r.789695.n4.nabble.com/How-to-apitalize-leading-letters-else-of-personal-names-tp3088336p3088336.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list