在R语言中如何匹配从Excel加载的含不规则空格的字符串?
解决Excel加载数据的不规则空格匹配问题
从Excel加载的字符串常包含非标准空格(如全角空格、不间断空格等),导致普通空格匹配失效。以下是几种修复方案:
统一替换所有空白字符
用正则表达式匹配所有类型的空白字符,替换为普通空格后再进行匹配:# 清理字符串中的所有非标准空格 cleaned_col <- gsub("\\s", " ", names_col) # 验证匹配 substr(cleaned_col[54], 15, 18) == " SUS"其中
\\s能匹配任何空白类字符(包括空格、制表符、不间断空格等)。用正则表达式直接模糊匹配
无需精确截取,直接检查字符串是否包含目标内容:# 检查字符串末尾是否带空格的SUS grepl("\\sSUS$", names_col[54]) # 或直接检查是否包含SUS grepl("SUS", names_col[54])定位并替换特定非标准空格
先查看空格的原始编码,再针对性替换:# 提取空格字符并查看编码 charToRaw(substr(names_col[54], 15, 15)) # 如果是不间断空格(编码0xA0),直接替换 cleaned_str <- gsub("\u00A0", " ", names_col[54]) substr(cleaned_str, 15, 18) == " SUS"
内容的提问来源于stack exchange,提问作者Canovice
相关产品推荐
相关产品推荐

