You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中将不同长度的空白字符替换为单个空格

R中将不等长连续空白替换为单个空格的解决方案

基础R原生方案(无需额外安装包)

你之前的gsub写法失效的原因是正则仅匹配单个空白字符,逐个替换后无法压缩连续空格,只需添加+量词匹配连续1次及以上的空白即可:

# 仅将连续空白替换为单个空格,保留首尾空格(如果存在)
df$column1 <- gsub("[[:space:]]+", " ", df$column1)

# 如需同时去除字符串首尾的多余空格,可组合trimws使用
df$column1 <- trimws(gsub("[[:space:]]+", " ", df$column1))

小提示:如果仅需要处理普通空格,无需匹配制表符、换行等其他空白类型,可将正则简化为" +"。

stringr包简洁方案

如果使用tidyverse生态的stringr包,可直接调用封装好的str_squish()函数,一步完成「连续空白替换为单个空格+去除首尾空格」操作:

library(stringr)
df$column1 <- str_squish(df$column1)

处理后输出效果

两种方案处理后打印数据集的结果一致:

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

内容的提问来源于stack exchange,提问作者EB2127

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:18:03