如何在R语言中将字符串内的多个连续空格替换为下划线
你使用的str_replace()函数默认仅替换字符串中匹配到的第一个目标字符,因此多空格场景下仅第一个空格会被替换为下划线,后续空格保持不变。
解决方案
根据你的实际需求二选一即可:
- 需求1:将每一个空格都单独替换为下划线(如
X Y两个连续空格替换后为X__Y)
直接替换str_replace为支持全量匹配的str_replace_all即可:all_data$`Facility Name` <- str_replace_all(all_data$`Facility Name`, pattern = " ", replacement = "_") - 需求2:将连续的多个空格合并替换为单个下划线(如
X Y两个连续空格替换后为X_Y)
配合正则匹配一个及以上的空格即可:# \\s+ 可匹配任意连续空白字符(含空格、制表符等),仅需匹配普通空格可将pattern改为" +" all_data$`Facility Name` <- str_replace_all(all_data$`Facility Name`, pattern = "\\s+", replacement = "_")
如果你不想依赖stringr包,也可以用Base R的gsub()函数实现同样效果,以需求2为例:
all_data$`Facility Name` <- gsub("\\s+", "_", all_data$`Facility Name`)
内容的提问来源于stack exchange,提问作者Hamdi Demirci
相关产品推荐
相关产品推荐

