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

如何在R语言中移除数据框列字符串中的特定前缀字符?

清理Name列的前缀字符

你的Name列数据中,每个条目开头带有2或3个大写字母的前缀,无需手动判断移除位数,用正则表达式即可自动匹配并清理,以下是两种实用方法:

方法1:基础R原生函数实现

使用sub函数结合正则表达式,匹配开头的连续大写前缀(这些前缀后紧跟“大写+小写”的姓名起始格式),将其替换为空:

df <- data.frame(Name = c("TOMTom Catch",
                          "BIBill Ronald",
                          "JEFJeffrey Wilson",
                          "GEOGeorge Sic",
                          "DADavid Irris"))

# 添加清理后的列
df$Clean_Name <- sub("^[A-Z]+(?=[A-Z][a-z])", "", df$Name, perl = TRUE)

# 查看结果
print(df)

运行后Clean_Name列的结果为:

  • Tom Catch
  • Bill Ronald
  • Jeffrey Wilson
  • George Sic
  • David Irris

方法2:使用stringr包(更简洁)

如果你常用tidyverse工具链,stringr包的str_remove函数可以更直观地完成操作:

library(stringr)

df$Clean_Name <- str_remove(df$Name, "^[A-Z]+(?=[A-Z][a-z])")

正则表达式解释

  • ^[A-Z]+:匹配字符串开头的1个或多个大写字母
  • (?=[A-Z][a-z]):正向预查规则,确保匹配的大写字母后面紧跟“大写字母+小写字母”的组合,避免误删姓名本身的首字母大写部分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:25:22