如何删除R中字符串末尾的双空格?

pac*_*ese 0 string r gsub dplyr

我正在尝试修复一些小问题。我感兴趣的列包含在开头或结尾处带有空格和双倍空格的字符串。

我问之前看过这些帖子

这是我正在做的可复制示例

library(dplyr)

mtcars2 = tbl_df(mtcars) %>% 
   mutate(name = rownames(mtcars)) %>%
   mutate(name = gsub("^ *|(?<= ) | *$", "", name, perl = TRUE)) %>%  
   mutate(name = gsub("^\\s+|\\s+$", "", name)) %>%
   mutate(name = iconv(name, from = "", to = "ASCII//TRANSLIT", sub = ""))

head(mtcars2, 3)
Run Code Online (Sandbox Code Playgroud)

结果是

# A tibble: 3 × 12
    mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb          name
  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>         <chr>
1  21.0     6   160   110  3.90 2.620 16.46     0     1     4     4     Mazda RX4
2  21.0     6   160   110  3.90 2.875 17.02     0     1     4     4 Mazda RX4 Wag
3  22.8     4   108    93  3.85 2.320 18.61     1     1     4     1    Datsun 710
Run Code Online (Sandbox Code Playgroud)

但是在我的数据集中之后,仍然存在一些双空格!

是否有更通用的命令来删除字符串末尾的空格?提前谢谢了 !

小智 5

您是否尝试过该trimws()功能?

> trimws('   hello   ')
[1] "hello"
Run Code Online (Sandbox Code Playgroud)