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

如何使用tidyverse将NCBI_tax_id列含Adenoassociated的行替换为AD

正确修改列内字符串的方法

你用的rename_with()是用来重命名列名的,不是修改列里的内容,所以这个函数不适合你的需求。下面是两种可行的解决方式:

方式一:用tidyverse工具链(dplyr + stringr)

先加载需要的包,然后用mutate()配合字符串替换函数修改目标列:

library(dplyr)
library(stringr)

# 生成修改后的新数据框(不修改原数据)
df_modified <- df %>%
  mutate(NCBI_tax_id = str_replace(NCBI_tax_id, "Adenoassociated.*", "AD"))

这里"Adenoassociated.*"是正则表达式,匹配所有以"Adenoassociated"开头的字符串,直接把整段内容替换成"AD",刚好满足你前3行变成"AD"的需求。

如果只是想替换字符串里的"Adenoassociated"部分(比如保留后面的病毒编号),可以改成:

str_replace(NCBI_tax_id, "Adenoassociated", "AD")

方式二:Base R 原生实现

不想加载额外包的话,用base R的gsub()函数直接修改:

# 直接修改原数据框的列
df$NCBI_tax_id <- gsub("Adenoassociated.*", "AD", df$NCBI_tax_id)

修改后效果

修改完成后,NCBI_tax_id列的前3行都会变成"AD",其余行保持原内容不变:

# 查看修改后的列
df_modified$NCBI_tax_id
# 输出结果:
# [1] "AD"                      "AD"                      "AD"                     
# [4] "BK polyomavirus"         "Camelpox virus"          "Chimpanzee adenovirus Y25"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:15:31