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

如何删除R数据框文本列开头的单个或连续连字符?

在R语言中删除data.frame字符串列开头的连字符

先看输入的数据框:

df <- data.frame (x  = c(12,14,15,178),
                  text = c("--Car","-Transport","Big-Truck","--Plane"))

要实现只删掉text列开头的单个或连续-,同时保留字符串中间的连字符(比如Big-Truck里的-),用正则表达式就能轻松解决,给你两种常用方法:

方法1:基础R原生函数gsub()

直接用gsub匹配开头的一个或多个连字符,替换成空字符串:

df$text <- gsub("^-+", "", df$text)

运行后输出结果:

print(df)
#     x       text
# 1  12        Car
# 2  14  Transport
# 3  15  Big-Truck
# 4 178      Plane

正则说明:^指定匹配字符串的起始位置,-+表示匹配1个或连续的多个-,这样就只会处理开头的连字符,不会影响中间的。

方法2:tidyverse工具包的stringr函数

如果你习惯用tidyverse系列工具,用stringr里的str_remove_all或者str_remove都可以:

library(stringr)
# 两种写法效果一致
df$text <- str_remove_all(df$text, "^-+")
# df$text <- str_remove(df$text, "^-+")

运行后同样能得到期望的输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:39:45