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

如何批量替换数据集中特定模式的行名?(R语言mtcars场景)

更高效的多字符串替换方法

当然有更简洁高效的实现方式,不用多次调用gsub,以下是几种常用方案:

1. 使用stringr::str_replace_all(推荐,tidyverse风格)

借助stringr包的str_replace_all函数,配合命名向量可以一次性完成多组替换,代码更简洁,逻辑更清晰:

library(tidyverse)

mtcars %>%
  rownames_to_column('car') %>%
  mutate(car = str_replace_all(car, c('Merc' = 'CREM', 'Mazda' = 'ADZAM')))

如果需要精准匹配整词(避免替换包含目标字符串的其他词,比如防止误改类似"Mercedes"这样的词),可以给匹配模式加上单词边界符\\b:

mtcars %>%
  rownames_to_column('car') %>%
  mutate(car = str_replace_all(car, c('\\bMerc\\b' = 'CREM', '\\bMazda\\b' = 'ADZAM')))

2. Base R方案(无需额外加载tidyverse)

如果不想用tidyverse,可借助gsubfn包实现批量替换:

# 先安装依赖包
install.packages("gsubfn")
library(gsubfn)

# 行名转列并替换
mtcars$car <- rownames(mtcars)
mtcars$car <- gsubfn(".", list(Merc = "CREM", Mazda = "ADZAM"), mtcars$car)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 08:17:02