R语言处理爬取数据时如何删除无法识别为空白符的多余空格
你遇到的问题核心是网页上标格式生成的空白不是常规ASCII空格,属于Unicode特殊空白(如不间断空格U+00A0等),所以直接匹配普通空格的逻辑无法生效。
方案1:仅删除所有空白,达到你给出的期望输出
stringr 实现
# \\s 正则可匹配所有类型的空白字符,包含Unicode特殊空白 cbb$StrReplace <- str_replace_all(cbb$School, "\\s", "")
base R 实现
# 开启perl正则支持,识别全类型空白字符 cbb$Gsub <- gsub("\\s", "", cbb$School, perl = TRUE)
运行后即可得到目标输出:
[1] "AirForce" "AkronNCAA" "AlabamaA&M" "Alabama-BirminghamNCAA" [5] "AlabamaStateNCAA" "Alabama"
方案2:一步到位删除NCAA及前置空白,满足后续移除NCAA的需求
如果你的最终目标是去掉NCAA内容,可以不用分步处理,直接匹配NCAA和它前面的所有空白直接移除:
stringr 实现
cbb$CleanSchool <- str_replace_all(cbb$School, "\\s*NCAA$", "")
base R 实现
cbb$CleanSchool <- gsub("\\s*NCAA$", "", cbb$School, perl = TRUE)
运行后输出如下:
[1] "Air Force" "Akron" "Alabama A&M" "Alabama-Birmingham" [5] "Alabama State" "Alabama"
内容的提问来源于stack exchange,提问作者Quinn Schroeder
相关产品推荐
相关产品推荐

