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

如何用R语言删除DataFrame某列中|及右侧所有内容?

解决方法

你的问题出在正则表达式写法有误,原来的"\|+*"是无效的正则表达式,而且仅匹配了|符号本身,没有覆盖它后面的所有内容。

要实现删除|及其右侧所有内容的需求,用下面的代码即可:

Data$Test <- sub("\\|.*", "", Data$X)

正则表达式说明

  • \\|:转义匹配|符号(因为|在正则中是表示“或”的特殊字符,必须用反斜杠转义,而R语言里需要写两个反斜杠才能识别)
  • .*:匹配|之后的任意字符(.代表任意单个字符,*表示匹配零次或多次,也就是把|后面的所有内容都包含进来)
  • 将这一整段匹配到的内容替换为空字符串,就能得到|左侧的目标内容。

如果习惯用stringr包处理字符串,也可以用这个方法:

library(stringr)
Data$Test <- str_split_fixed(Data$X, "\\|", 2)[, 1]

这个方法是把每个字符串按|分割成两部分,直接取第一部分,效果和上面的正则替换完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:32:06