首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在dataframe中裁剪部分列名(TCGA患者ID)

如何在dataframe中裁剪部分列名(TCGA患者ID)
EN

Stack Overflow用户
提问于 2018-07-31 22:06:14
回答 2查看 94关注 0票数 0

我有一个以TCGA患者ID作为列名的数据集。我想要做的是去掉名字的后半部分,但保留名字的前部份。我的数据:

代码语言:javascript
复制
GeneID        | TCGA-3L-AA1B-01A-11R-A37K-07   | TCGA-4N-A93T-01A-11R-A37K-07 | TCGA-4T-AA8H-01A-11R-A41B-07
------------- | -------------------------------| -----------------------------|------------------------------
100130426     | 0.5174                         | 0.0000                       |0.0000
100133144     | 18.0851                        | 4.4315                       |9.8995

我想保留的列名如下:

代码语言:javascript
复制
GeneID        | TCGA-3L-AA1B-01A               | TCGA-4N-A93T-01A             | TCGA-4T-AA8H-01A
------------- | -------------------------------| -----------------------------|------------------------------
100130426     | 0.5174                         | 0.0000                       |0.0000
100133144     | 18.0851                        | 4.4315                       |9.8995

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-31 22:19:44

您也可以使用strsplit

代码语言:javascript
复制
names(df)[-1] <- sapply(strsplit(names(df)[-1], "-"), function(x) paste0(x[1:4], collapse = "-"))
df
#     GeneID TCGA-3L-AA1B-01A TCGA-4N-A93T-01A TCGA-4T-AA8H-01A
#1 100130426           0.5174           0.0000           0.0000
#2 100133144          18.0851           4.4315           9.8995

样本数据

代码语言:javascript
复制
df <- read.table(text =
    "100130426      0.5174                          0.0000                       0.0000
100133144      18.0851                         4.4315                       9.8995", header = F)
names(df) <- c("GeneID", "TCGA-3L-AA1B-01A-11R-A37K-07", "TCGA-4N-A93T-01A-11R-A37K-07", "TCGA-4T-AA8H-01A-11R-A41B-07")
票数 2
EN

Stack Overflow用户

发布于 2018-07-31 22:11:55

你可以:

代码语言:javascript
复制
names(df) <- substr(names(df),1,16)

代码语言:javascript
复制
names(df) <- sub("-[^-]+-[^-]+-[^-]+$","",names(df))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51622777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档