Uppercase the first letter in data frame

2019-06-20 06:45发布

问题:

Heres my data,

> data
   Manufacturers       Models
1   audi                RS5  
2   bmw                 M3  
3   cadillac            CTS-V  
4   lexus               ISF

And I would want to uppercase the first letter in the first column, like this:

> data
   Manufacturers       Models
1   Audi                RS5  
2   Bmw                 M3  
3   Cadillac            CTS-V  
4   Lexus               ISF

I would appreciate any help on this question. Thanks a lot.

回答1:

Taking the example from the documentation for ?toupper and modifying it a bit:

capFirst <- function(s) {
    paste(toupper(substring(s, 1, 1)), substring(s, 2), sep = "")
}

data$Manufacturers <- capFirst(data$Manufacturers)
> data
#   Manufacturers Models
# 1          Audi    RS5
# 2           Bmw     M3
# 3      Cadillac  CTS-V
# 4         Lexus    ISF


回答2:

Or, taking an example from ?gsub:

data$Manufacturers <- gsub("^(\\w)(\\w+)", "\\U\\1\\L\\2", 
  data$Manufacturers, perl = TRUE)

> data
>  Manufacturers Models
1          Audi    RS5
2           Bmw     M3
3      Cadillac  CTS-V
4         Lexus    ISF