7 行列整理及character处理技巧

match 函数的运用:对%in%中的ID重新排序后输出

expr$ID_2<- ifelse(expr$ID_0%in%ID_trans$gene_id,ID_trans$ESNG_ID[match(expr$ID_0,ID_trans$gene_id)],'')

修改列名字

names(phe)[colnames(phe)=='T stage']<- c('T_stage')

提取名为‘GAPDH’的行

exprSet['GAPDH',]
boxplot(exprSet['GAPDH',])

grepl

meta[(grepl('patient.bcr_patient_barcode',colnames(meta)))]

选择列:不用dplyr轻松筛选列,类似于dplyr::select

colnames(clinical_data)
clinical_data_filter<- clinical_data[,c('tcag_barcode','vital_status','days_to_death','days_to_last_followup')]

一句话合并顺序match函数

d<- d[match(a$gene_id,d$gene_id),]
phe2<- phe[match(colnames(exprSet),phe$`Patient ID`),]

将d的顺序改为和a一样的顺序,也就是将a的顺序match给d

image.png

按照rownames对dataframe进行排序match函数的运用

ids=ids[match(rownames(exprSet),ids$probe_id),]

substr

substr('abbbabbaba',1,4)

2 对probe_id 进行分离时特别主要点号要用[.]包起来

Ensemble_ID<- row.names(Esophagus_gtex)

ID<- strsplit(Ensemble_ID, "[.]")
str(ID)
IDlast<- sapply(ID, "[", 1)
IDlast
row.names(Esophagus_gtex)<- IDlast

特别主要点号要用[.]包起来,或者\.

library('stringr')
a<- c('qqqq.qqq')
str_split(a,pattern = '.',simplify = T)
str_split(a,pattern = '[.]',simplify = T)[,1]
str_split(a,pattern = '\\.',simplify = T)[,1]
特别注意

gsub对所有的内容进行替换

gsub('[.]','-',colnames(GTEx))

stringr

library(stringr)
str_split(cl_df$stage_event, "T",simplify = T)[,1]  

按T进行分割,取第一列。 这种方法对probe_id 按照'.'分隔无法进行

正则表达‘或’的运用

gene_expression$group<- ifelse(gene_expression$group== 'T1'|gene_expression$group=='T2','T1-2','T3-4')
# 不可以写成gene_expression$group<- ifelse(gene_expression$group== 'T1'|'T2','T1-2','T3-4')

区分TCGA 癌组织和非癌组织

group_list=ifelse(as.numeric(substr(colnames(exprSet),14,15)) < 10,'tumor','normal')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容