2017-04-21 279 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將刪除尾隨空格,但它也將刪除空格字符串,這可能會導致更糟的問題。 –