前面给大家简单介绍了
今天我们来结合具体的例子给大家讲解一下因子在临床分组中的应用。
我们还是以TCGA数据中的CHOL(胆管癌)这套数据为例。关于这套临床数据的下载可以参考
☞如何从TCGA数据库下载RNAseq数据以及临床信息(一)
前面我们也给大家介绍过一些处理临床数据的小技巧
☞【R语言】卡方检验和Fisher精确检验,复现临床paper
接下来我们先读入临床数据
#读取临床数据
clin=read.table("clinical.tsv",header=T,sep="\t",quote="")
#去除重复的行
index=!duplicated(clin$case_submitter_id)
#提取非重复的样本的临床信息
clin=clin[index,]
可以得到如下临床信息表
前面给大家讲过☞肿瘤TNM分期,我们知道组织病理分期分成stage I,stage II,stage III和stage IV四个分期
接下来我们试着把组织病理分期从四个组合并成两个组,并转换成因子
方法一、使用gsub函数
前面也给大家介绍过☞R替换函数gsub
#删除组织病理学分期末尾的A,B或者C等字母,例如Stage IIIA,Stage IIIB
stage=gsub("[ABCD]$","",clin$ajcc_pathologic_stage)
#将Stage III和Stage IV替换成stage III/IV
stage=gsub("Stage IV.*","stage III/IV",stage)
stage=gsub("Stage III.*","stage III/IV",stage)
#将剩下的Stage I和Stage II替换成stage I/II
stage=gsub("Stage.*","stage I/II",stage)
#转换成因子
stage=factor(stage)
stage
可以得到下面这个两分组的因子
方法二、直接使用factor函数
#删除组织病理学分期末尾的A,B或者C等字母,例如Stage IIIA,Stage IIIB
stage=gsub("[ABCD]$","",clin$ajcc_pathologic_stage)
#通过设置levels和labels实现合并
stage=factor(stage,levels=c("Stage I","Stage II","Stage III","Stage IV"),labels = c("stage I/II","stage I/II","stage III/IV","stage III/IV"))
stage
可以得到跟上面使用gsub一样的结果
接下来我们试着把组织病理分期从四个组合并成三个组,即stage I,stage II和stage III/IV,并转换成因子
也是我们在 m6a甲基化相关基因根据临床信息分组绘制boxplot并显示p值 一文中使用的分组方法
方法一、使用gsub函数方法
#删除组织病理学分期末尾的A,B或者C等字母,例如Stage IIIA,Stage IIIB
stage=gsub("[ABCD]$","",clin$ajcc_pathologic_stage)
#将Stage III和Stage IV替换成stage III/IV,剩下的stageI和II保持不变
stage=gsub("Stage IV.*","stage III/IV",stage)
stage=gsub("Stage III.*","stage III/IV",stage)
#转换成因子
stage=factor(stage)
stage
可以得到如下因子
方法二、直接使用factor函数
#删除组织病理学分期末尾的A,B或者C等字母,例如Stage IIIA,Stage IIIB
stage=gsub("[ABCD]$","",clin$ajcc_pathologic_stage)
#通过设置levels和labels实现合并
stage=factor(stage,levels=c("Stage I","Stage II","Stage III","Stage IV"),labels = c("stage I","stage II","stage III/IV","stage III/IV"))
stage
可以得到跟gsub一样的结果
获取clinical.tsv文件,☞【R语言】因子在临床分组中的应用
参考资料:
☞如何从TCGA数据库下载RNAseq数据以及临床信息(一)