我有一个以TCGA患者ID作为列名的数据集。我想要做的是去掉名字的后半部分,但保留名字的前部份。我的数据:
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我想保留的列名如下:
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非常感谢!
发布于 2018-07-31 22:19:44
您也可以使用strsplit
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样本数据
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")发布于 2018-07-31 22:11:55
你可以:
names(df) <- substr(names(df),1,16)或
names(df) <- sub("-[^-]+-[^-]+-[^-]+$","",names(df))https://stackoverflow.com/questions/51622777
复制相似问题