如何在R语言中替换包含(D)的文本内容
在R语言中替换数据框含(D)的文本为Discontinue
你可以通过以下两种常用方法实现需求:将数据框text列中包含"(D)"的条目整体替换为"Discontinue",其余内容保持不变。
示例数据
df <- data.frame(id = c(1,2,3), text = c("Student was (D) in X","text1","tex2"))
方法1:Base R 原生函数
利用grepl检测字符串是否包含目标模式,结合ifelse完成替换:
# 替换text列内容 df$text <- ifelse(grepl("\\(D\\)", df$text), "Discontinue", df$text) # 查看结果 df
输出:
id text 1 1 Discontinue 2 2 text1 3 3 tex2
注:
\\(D\\)是正则表达式写法,因为括号()在正则中属于特殊字符,需要用反斜杠转义,R语言中需写两个反斜杠表示转义。
方法2:Tidyverse 工具链(dplyr)
如果习惯使用管道式操作,可以用dplyr结合stringr的str_detect函数:
library(dplyr) df <- df %>% mutate(text = if_else(str_detect(text, "\\(D\\)"), "Discontinue", text)) # 查看结果 df
输出与方法1一致。
内容的提问来源于stack exchange,提问作者amisos55
相关产品推荐
相关产品推荐

