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

如何将dataframe列名后缀移至开头?(A01_rep1转rep1_A01)

交换DataFrame列名的前后缀部分

针对你需要把A01_rep1这类列名改成rep1_A01的需求,用gsub配合正则捕获组就能精准实现,不用复杂操作:

核心代码

# 直接修改counts的列名
colnames(counts) <- gsub("(.*)_(rep\\d+)", "\\2_\\1", colnames(counts))

正则说明

  • (.*):捕获下划线前的所有内容(比如A01)
  • _(rep\\d+):匹配下划线,同时捕获rep加数字的部分(比如rep1)
  • \\2_\\1:把第二个捕获组(重复组标识)移到前面,第一个捕获组(样本编号)放在后面,中间用下划线连接

更严谨的写法(针对固定格式的样本编号)

如果你的样本编号都是A加两位数字的格式,可以用更精准的正则避免意外匹配:

colnames(counts) <- gsub("([A-Z]\\d{2})_(rep\\d+)", "\\2_\\1", colnames(counts))

测试验证

你可以先拿测试列名验证逻辑:

test_cols <- c("A01_rep1", "A02_rep1", "A03_rep1", "A01_rep2", "A02_rep2")
gsub("(.*)_(rep\\d+)", "\\2_\\1", test_cols)
# 输出:"rep1_A01" "rep1_A02" "rep1_A03" "rep2_A01" "rep2_A02"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:41:14