【问题标题】:How to programmatically remove space after string?如何以编程方式删除字符串后的空格?
【发布时间】:2022-01-12 03:58:30
【问题描述】:

我希望删除字符串后面的空格,例如,我希望它是 SO MILWAUKEE.xlsx,而不是我的向量值 SO MILWAUKEE .xlsx。我对 dplyr 或 base r 中的解决方案持开放态度

 [1] "INTERLINE BRANDS.xlsx"         "POLY-AMERICA, LP.xlsx"         "SO TTI POWER EQUIPMENT .xlsx" 
 [4] "GENERAC SO.xlsx"               "SO TOTER LLC           .xlsx"  "SO IMPERIAL INDUSTRIAL .xlsx" 
 [7] "SO MTDARNOLD PRODUCTS .xlsx"   "SO KOHLER GENS.xlsx"           "RUBBERMAID CONSUMER     .xlsx"
[10] "SO MILWAUKEE           .xlsx"  "SO CINDERELLA INC      .xlsx"  "MAKITA                  .xlsx"
[13] "SO  THE TORO COMPANY   .xlsx"  "SO RUBBERMAID SPECIALTY.xlsx"  "SO AMES TRUE TEMPER , I.xlsx" 
[16] "SO POLYWOOD            .xlsx"  "ZEPENFORCER.xlsx"              "TIGER SUPPLIES          .xlsx"
[19] "INTERLINE BRANDS, INC..xlsx"   "SO MWE INVESTMENTS, LLC.xlsx"  "SO DIMPLEX NORTH AMERIC.xlsx"

【问题讨论】:

    标签: r vector dplyr


    【解决方案1】:

    假设您的数据在dat 中。您可以执行以下操作:

    dat <- gsub("\\s+\\.xlsx", ".xlsx", dat)
    

    【讨论】:

    • 虽然我发现根据示例数据很难看到这种破坏,但在 .xlsx 中转义 . 可能会更具防御性,因此 . 不匹配“任何字符”(就像现在一样)。
    • @r2evans 好收获
    • (第二个/替换不需要反斜杠转义,只需要第一个。)
    • @r2evans 没有意识到 replacement 被强制转换为字符
    • 没有强制,所有三个参数都已经是字符。 pattern=(第一个)参数是唯一一个进行模式 matching 的参数; replacement=(第二个)参数实际上只能保存占位符(例如,\\1 用于分组/保存模式),第二个中没有使用其他正则表达式。
    【解决方案2】:
    library(tidyverse)
    
    data <- 
    c("INTERLINE BRANDS.xlsx",         "POLY-AMERICA, LP.xlsx",         "SO TTI POWER EQUIPMENT .xlsx",
     "GENERAC SO.xlsx",               "SO TOTER LLC           .xlsx",  "SO IMPERIAL INDUSTRIAL .xlsx", 
     "SO MTDARNOLD PRODUCTS .xlsx",   "SO KOHLER GENS.xlsx",           "RUBBERMAID CONSUMER     .xlsx",
     "SO MILWAUKEE           .xlsx",  "SO CINDERELLA INC      .xlsx",  "MAKITA                  .xlsx",
     "SO  THE TORO COMPANY   .xlsx" , "SO RUBBERMAID SPECIALTY.xlsx",  "SO AMES TRUE TEMPER , I.xlsx" ,
     "SO POLYWOOD            .xlsx",  "ZEPENFORCER.xlsx",              "TIGER SUPPLIES          .xlsx",
     "INTERLINE BRANDS, INC..xlsx",   "SO MWE INVESTMENTS, LLC.xlsx",  "SO DIMPLEX NORTH AMERIC.xlsx")
    
    str_replace(data, '\\s+\\.xlsx', '.xlsx')
    #>  [1] "INTERLINE BRANDS.xlsx"        "POLY-AMERICA, LP.xlsx"       
    #>  [3] "SO TTI POWER EQUIPMENT.xlsx"  "GENERAC SO.xlsx"             
    #>  [5] "SO TOTER LLC.xlsx"            "SO IMPERIAL INDUSTRIAL.xlsx" 
    #>  [7] "SO MTDARNOLD PRODUCTS.xlsx"   "SO KOHLER GENS.xlsx"         
    #>  [9] "RUBBERMAID CONSUMER.xlsx"     "SO MILWAUKEE.xlsx"           
    #> [11] "SO CINDERELLA INC.xlsx"       "MAKITA.xlsx"                 
    #> [13] "SO  THE TORO COMPANY.xlsx"    "SO RUBBERMAID SPECIALTY.xlsx"
    #> [15] "SO AMES TRUE TEMPER , I.xlsx" "SO POLYWOOD.xlsx"            
    #> [17] "ZEPENFORCER.xlsx"             "TIGER SUPPLIES.xlsx"         
    #> [19] "INTERLINE BRANDS, INC..xlsx"  "SO MWE INVESTMENTS, LLC.xlsx"
    #> [21] "SO DIMPLEX NORTH AMERIC.xlsx"
    

    reprex package (v2.0.1) 于 2021-12-06 创建

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      相关资源
      最近更新 更多