【问题标题】:Uppercase the first letter in data frame大写数据框中的第一个字母
【发布时间】:2013-04-21 09:40:15
【问题描述】:

这是我的数据,

> 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


    【解决方案1】:

    以?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
    

    【讨论】:

    • 有没有办法让每个单词的第一个字母(如果每个条目可能不止一个单词)大写?堆栈使用的其他解决方案适用并且太慢,我喜欢这个矢量化解决方案
    【解决方案2】:

    或者,以?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
    

    【讨论】:

      【解决方案3】:

      解决方案非常简单。

      您可以通过子集和大写字符串向量来解决此问题。

      • 步骤 1: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()
      
      

      【讨论】:

        猜你喜欢
        • 2018-07-08
        • 1970-01-01
        • 2013-09-01
        • 2013-01-30
        • 2021-10-02
        • 2011-09-29
        • 1970-01-01
        • 1970-01-01
        • 2014-12-23
        相关资源
        最近更新 更多