数据帧中的第一个字母大写。

问题描述 投票:6回答:3

这是我的数据。

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

而且我想把第一列的第一个字母大写,像这样。

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

我将感谢任何帮助这个问题。谢谢你的帮助。

r dataframe uppercase
3个回答
13
投票

从文档中的例子 ?toupper 并稍加修改。

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

6
投票

或者,举个例子 ?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

1
投票

解决方法很简单。

你可以通过对一个字符串向量进行子集和大写来解决这个问题。

  • Step1.将一个字符串向量进行子集。stringr::str_sub() 子集一个字符串向量。str_sub(string, 1, 1) 表示第一个字母。str_sub(df, 1, 1) 返回第一个字母的向量。
  • Step2:将第一个字母变成大写字母。stringr::str_to_upper() 把第一个字母变成大写字母。
# Load package
    library(tidyverse)

# Your data
    df <- tibble(Manufacturers = c("audi", "bmw", "cadillac", "lexus"),
             Models = c("RS5", "M3", "CTS-V", "ISF"))

# Solution
    str_sub(df$Manufacturers, 1, 1) <- str_sub(df$Manufacturers, 1, 1) %>% str_to_upper()

© www.soinside.com 2019 - 2024. All rights reserved.