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

如何为R语言dataframe中非MGH开头的行名添加指定前缀与后缀

R语言DataFrame行名批量修改方案

需求说明

需要对指定DataFrame的行名做如下处理:

  • 对不以MGH开头的行名:先清理多余空格,再添加前缀X和后缀.bam
  • 以MGH开头的行名:仅清理多余空格,保持原有格式不变

例如原行名"115-031814 "会修改为"X115-031814.bam",而"MGH208_031115-1.bam "仅清理空格后保留为"MGH208_031115-1.bam"。


完整实现代码

首先加载你的数据框:

df <- structure(list(Treatnent.state = c("PRE Immune Checkpoint Blockade Therapy", 
"PRE Immune Checkpoint Blockade Therapy", "PRE Immune Checkpoint Blockade Therapy", 
"PRE Immune Checkpoint Blockade Therapy", "PRE Immune Checkpoint Blockade Therapy", 
"PRE Immune Checkpoint Blockade Therapy", "PRE Immune Checkpoint Blockade Therapy (On dabrafenib+trametinib)", 
"PRE Immune Checkpoint Blockade Therapy", "PRE Immune Checkpoint Blockade Therapy", 
"PRE Immune Checkpoint Blockade Therapy", "PRE Immune Checkpoint Blockade Therapy", 
"PRE Immune Checkpoint Blockade Therapy", "PRE Immune Checkpoint Blockade Therapy (On dabrafenib+trametinib)", 
"PRE Immune Checkpoint Blockade Therapy (On dabrafenib+trametinib)"
), timepoint = c(-6, 0, 0, 0, 0, -1, 0, -3, -2, 0, 0, -1, 0, 
0), Patient = c(115, 148, 208, 208, 272, 39, 42, 422, 62, 208, 
208, 39, 42, 42)), class = "data.frame", row.names = c("115-031814          ", 
"148-6-5-14_S9       ", "208-3-11-15_S13     ", "208-9-10-14_S11     ", 
"272-121914          ", "39-3-31-14_S15      ", "42-10-17-14_S3      ", 
"422-092815          ", "62-10-2-13_S6       ", "MGH208_031115-1.bam ", 
"MGH208_031115-2.bam ", "MGH39_033114.bam    ", "MGH42_101714.bam    ", 
"MGH42_101714_1.bam  "))

执行行名修改:

# 1. 清理行名中的首尾空格
clean_rownames <- trimws(rownames(df))

# 2. 按条件生成新行名
new_rownames <- ifelse(
  grepl("^MGH", clean_rownames),  # 判断是否以MGH开头
  clean_rownames,                  # 符合条件则保留原格式
  paste0("X", clean_rownames, ".bam")  # 不符合则添加前缀后缀
)

# 3. 将新行名赋值回数据框
rownames(df) <- new_rownames

修改后验证

运行rownames(df)可得到处理后的行名:

[1] "X115-031814.bam"       "X148-6-5-14_S9.bam"    "X208-3-11-15_S13.bam"  "X208-9-10-14_S11.bam" 
 [5] "X272-121914.bam"       "X39-3-31-14_S15.bam"   "X42-10-17-14_S3.bam"   "X422-092815.bam"      
 [9] "X62-10-2-13_S6.bam"    "MGH208_031115-1.bam"   "MGH208_031115-2.bam"   "MGH39_033114.bam"     
[13] "MGH42_101714.bam"      "MGH42_101714_1.bam"   

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:41:31