如何在R语言的tibble中实现指定字符串替换?
R tibble 字符串多值替换实现方案
针对你给出的固定值替换需求,提供两种常用的tidyverse生态实现方式:
方法1:精准匹配替换(推荐)
使用dplyr::case_when()做全单元格匹配,不会误替换包含目标词的其他字符串,最适配你当前的场景:
library(tidyverse) df <- df %>% mutate(word = case_when( word == "apple" ~ "frui", word == "pear" ~ "bord", .default = word # 其余值保持不变 ))
方法2:子串批量替换
如果需要替换字符串内的对应子串(比如单元格内容为apple123也想替换成frui123),可以用stringr::str_replace_all()传入命名映射向量实现批量替换:
library(tidyverse) # 定义替换映射规则:键是原字符串,值是替换后的字符串 replace_map <- c("apple" = "frui", "pear" = "bord") df <- df %>% mutate(word = str_replace_all(word, replace_map))
两种方法在你的示例数据上运行得到的最终结果一致,输出如下:
# A tibble: 6 × 2 word i <chr> <int> 1 frui 1 2 frui 2 3 frui 3 4 banana 4 5 bord 5 6 bord 6
内容的提问来源于stack exchange,提问作者bic ton
相关产品推荐
相关产品推荐

