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

在R语言中如何替换数据中的特定字符以得到目标字符串?

R语言字符串替换实现方案

方法1:基础正则替换(gsub)

直接用R基础包的gsub()函数,通过正则表达式精准匹配并替换目标片段:

original <- "20220801_NM7_Chrom_2399_A12_CCIH.CSV"
result <- gsub("_A12(.*)\\.CSV", "\\1", original)
print(result)
# 输出:[1] "20220801_NM7_Chrom_2399_CCIH"

正则说明:_A12(.*)\\.CSV匹配_A12到.CSV的整个片段,括号内的(.*)捕获_A12和.CSV之间的内容(即_CCIH),替换时用\\1引用捕获的内容,从而保留需要的部分。

方法2:拆分重组字符串

如果字符串结构固定,可拆分后选取需要的部分重新拼接:

original <- "20220801_NM7_Chrom_2399_A12_CCIH.CSV"
parts <- strsplit(original, "_")[[1]]
# 取前4段,加上处理后的第6段(移除.CSV后缀)
result <- paste(c(parts[1:4], sub("\\.CSV$", "", parts[6])), collapse = "_")
print(result)

步骤说明:按下划线拆分字符串后,前4段是需要保留的前缀,第6段通过sub()去掉末尾的.CSV,最后用下划线拼接所有目标片段。

方法3:tidyverse风格实现(stringr包)

如果常用tidyverse工具链,用stringr包的函数更简洁直观:

library(stringr)
original <- "20220801_NM7_Chrom_2399_A12_CCIH.CSV"
result <- str_replace(original, "_A12(.*)\\.CSV", "\\1")
print(result)

或者拆分重组的写法:

library(stringr)
original <- "20220801_NM7_Chrom_2399_A12_CCIH.CSV"
parts <- str_split(original, "_")[[1]]
result <- str_c(c(parts[1:4], str_remove(parts[6], "\\.CSV$")), collapse = "_")
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:06:26