2017-04-21 71 views
0

我试图修正一些细胞在一个蹒跚。我感兴趣的列包含在开始或结束时带有空格和双空格的字符串。如何在R中的字符串结尾删除双空格?

我问

这是我在做什么

重复的例子,以前看到这些职位
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) 

而且这样做,一些双空格坚持后的结果是

# 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 

但在我的数据集!

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

+1

那些空格在哪里?这些常规或一些Unicode空格?试试'gsub(“^ \\ s + | \\ s + $ |(\ s)+”,“$ 1”,name)' –

+0

“但是在我的数据集中做了一些双空格之后” - 换句话说,你没有一个可重复的例子呢?有'trimws',可能在您的链接中提到,但我没有在您的代码中看到它。 – Frank

回答

4

您是否试过trimws()函数?

> trimws(' hello ') 
[1] "hello" 
+1

https://stat.ethz.ch/R-manual/R-devel/library/base/html/trimws.html 惊人的!我不知道这一点,它也认为标签为空白! – pachamaltese

+0

'mutate(name = gsub(“”,“”,name))%>%'似乎正在工作......现在:( – pachamaltese

+0

'gsub'ing将删除尾随空格,但它也将删除空格字符串,这可能会导致更糟的问题。 –

相关问题