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

如何为不含_16S_sed的DataFrame列名添加该后缀

给DataFrame列名批量添加指定后缀(仅当列名不含该后缀时)

解决方案代码

首先还原你的示例数据集:

dataframe1 <- structure(list(GL11_DN_1_16S_sed = structure(1:3, .Label = c("val1", 
"val2", "val3"), class = "factor"), GL12_UP_3_16S_sed = structure(1:3, .Label = c("val1", 
"val2", "val3"), class = "factor"), GL13_1_DN = structure(1:3, .Label = c("val1", 
"val2", "val3"), class = "factor")), class = "data.frame", row.names = c(NA, 
-3L))

然后执行以下代码处理列名:

# 检查列名是否以"_16S_sed"结尾,未匹配的列名添加该后缀
colnames(dataframe1) <- ifelse(
  grepl("_16S_sed$", colnames(dataframe1)),
  colnames(dataframe1),
  paste0(colnames(dataframe1), "_16S_sed")
)

代码说明

  • grepl("_16S_sed$", colnames(dataframe1)):使用正则表达式精准匹配以"_16S_sed"结尾的列名,避免误处理列名中间包含该字符串的情况。
  • ifelse函数实现分支逻辑:匹配成功则保留原列名,失败则拼接后缀。
  • paste0用于无分隔符拼接字符串,直接将后缀追加到原列名后。

验证结果

运行代码后查看列名:

colnames(dataframe1)
# 输出:
# [1] "GL11_DN_1_16S_sed" "GL12_UP_3_16S_sed" "GL13_1_DN_16S_sed"

可以看到第三列GL13_1_DN已成功添加后缀,前两列保持不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:05:06