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

如何在R语言数据框同一列中批量替换多个不同模式的字符串?

问题根因
  • 你后两次mutate操作依旧调用原始未修改的column列做匹配替换,每次都会直接覆盖上一步对domain列的修改结果
  • 第三次替换的匹配规则存在笔误,误将G开头的匹配规则写为^P.*,无法命中目标内容
最优解决方法

直接使用str_replace_all函数传入命名匹配向量,一次性完成多模式替换,不需要多次分步操作:

library(dplyr)
library(stringr)

spreadsheet.dat3 <- spreadsheet.dat %>%
  mutate(domain = str_replace_all(column, c(
    "^P.*" = "Positive",
    "^N.*" = "Negative",
    "^G.*" = "General"
  )))
分步写法修正(仅作错误对照,不推荐使用)

如果你坚持要分步实现,需要将后两次替换的匹配源修改为上一步生成的domain列,同时修正第三次的匹配规则:

spreadsheet.dat1<-spreadsheet.dat %>%
  mutate(domain=str_replace(column, "^P.*", "Positive"))
spreadsheet.dat2<-spreadsheet.dat1 %>%
  mutate(domain=str_replace(domain, "^N.*", "Negative"))
spreadsheet.dat3<-spreadsheet.dat2 %>%
  mutate(domain=str_replace(domain, "^G.*", "General"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:45:04