首页 > 解决方案 > 如何用一个空格替换不同长度的空格?

问题描述

如何用 R 中的单个空格替换不同长度的空格?

R 有很多替换字符的方法,例如gsubtidyr 或stringr包。但是,我无法弄清楚如何用单个\n空格最好地替换空格(长度不同)。

这是R中的data.frame。

df = data.frame(column1= c("A B", "C  D", "E   F", "G    H", "I     J", "K      L", "M       N"))

请注意,空格数会有所不同:

print(df)
#     column1
# 1       A B
# 2      C  D
# 3     E   F
# 4    G    H
# 5   I     J
# 6  K      L
# 7 M       N

我天真的方法是使用gsub()

df$column1 <- gsub("[[:space:]]", " ", df$column1) 

但是,这不会更改用于替换为单个空格的不同长度的空格。

标签: rstring

解决方案


你也可以使用str_squish

library(tidyverse)

df %>%
   mutate(column1 = str_squish(column1))

  column1
1     A B
2     C D
3     E F
4     G H
5     I J
6     K L
7     M N

推荐阅读