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

在R中使用分隔符拆分文本为两列遇问题求助

问题排查与解决

错误原因

  1. 分隔符未正确转义:|是正则表达式的特殊元字符(表示“或”逻辑),直接写sep = "|"会让separate把每个字符都当成分隔符,导致拆分结果完全混乱。
  2. 原列被默认删除:separate函数默认会移除被拆分的原列,不符合你保留UniqueID列的需求。

解决方案

修正后的代码

使用fixed("|")把竖线当作普通文本分隔符,同时设置remove = FALSE保留原列,再加trim_ws = TRUE自动去除拆分后内容的前后空格:

Df <- Df %>% 
  separate(UniqueID, into = c("ABC", "XYZ"), sep = fixed("|"), remove = FALSE, trim_ws = TRUE)

等效写法(正则转义)

也可以用双反斜杠转义竖线,实现同样效果:

Df <- Df %>% 
  separate(UniqueID, into = c("ABC", "XYZ"), sep = "\\|", remove = FALSE, trim_ws = TRUE)

效果验证

运行后会得到符合预期的结果:

  • 原UniqueID列完整保留
  • ABC列存储无多余空格的12M-MA
  • XYZ列存储无多余空格的X1/X2等内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:22:21