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

如何通过循环修改TCGA数据的Barcode行名格式?

TCGA Barcode 格式修改问题解析

你的代码存在两个核心问题:

  • 循环逻辑错误:每次迭代都会将r重置为当前单个处理后的字符串,之前的结果被完全覆盖,最终所有行名会被替换成最后一个barcode的处理值。
  • 没必要用循环:R天生支持向量化操作,直接对整个行名向量处理效率更高,完全不需要写for循环。

正确的向量化写法(推荐)

直接对所有行名批量处理,代码简洁高效:

# 将所有barcode中的'-'替换为'.',再截取前16位
new_rownames <- substr(gsub("-", ".", rownames(df)), 1, 16)
# 赋值给数据框行名
rownames(df) <- new_rownames

如果一定要用for循环(不推荐)

需要提前初始化存储结果的向量,避免循环中反复扩容(影响效率),并按索引逐个赋值:

# 提前创建与行名长度一致的空字符向量
new_rownames <- character(length(rownames(df)))
for (i in seq_along(rownames(df))) {
  current_barcode <- rownames(df)[i]
  # 处理单个barcode并赋值到对应位置
  new_rownames[i] <- substr(gsub("-", ".", current_barcode), 1, 16)
}
rownames(df) <- new_rownames

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:01:10