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')