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

如何用R去除CSV文件中键盘无对应按键的长破折号

在R中去除长破折号(—)的正确方法

你之前的代码无法生效,核心原因是用短破折号-匹配长破折号—,两者是完全不同的字符:长破折号的Unicode编码为\u2014,和普通短破折号不属于同一字符,因此匹配失败。另外你最后一段代码存在语法错误,str_replace_all的参数顺序和across的函数调用方式不对。

以下是两种可行的正确方案:

方案1:使用Unicode编码匹配

直接通过长破折号的Unicode编码\u2014进行匹配替换,这种方式无需输入特殊字符,适合键盘无法直接打出长破折号的场景:

# 确保已加载dplyr和stringr包
library(dplyr)
library(stringr)

Port2 <- Port %>%
  mutate(across(everything(), ~str_replace_all(.x, "\u2014", "")))

方案2:直接复制粘贴长破折号匹配

如果能从数据或其他地方复制到长破折号—,也可以直接用该字符进行替换:

Port2 <- Port %>%
  mutate(across(everything(), ~str_replace_all(.x, "—", "")))

注意事项

  • 必须提前加载dplyr和stringr包,否则mutate、across、str_replace_all这些函数会报错。
  • across(everything())会对数据框的所有列进行替换操作,如果只需要处理特定列,可以把everything()换成列名向量,比如c(col1, col2)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:08:14