赞
踩
来源:生信控
手里有个数据集,包含286个乳腺癌患者的临床信息,如下:
现在想要分别计算ER阳性(pos)和阴性(neg)患者的上下四分位、中位生存时间(time_survival)
方法1:
比较好理解的是,先找到对应患者的生存时间 time_survival,然后使用 quantile 统计分位数。如下,首先统计ER阳性患者的生存时间:
pos_surv = breast[which(breast$ER == "pos"), "time_survival"]
quantile(pos_surv, probs = c(0.25, 0.5, 0.75))
显示结果如下:
25% 50% 75% 44 86 109
同理,可以计算ER阴性患者生存时间!
方法2:
此例中仅有2组分类(ER阴性、阳性),如果对于多组的情况,应该使用循环简化程序。如下,使用 lapply
:
lapply(levels(breast$ER), function(e) quantile(breast[which(breast$ER == e),"time_survival"], probs = c(0.25, 0.5, 0.75)))
显示结果如下:
[[1]] 25% 50% 75% 29 84 103
[[2]] 25% 50% 75% 44 86 109
方法3:
方法2可能是比较常用的一种处理方式,更容易理解,不过,更自动化的操作方式是使用R中内置的 aggregate
函数
Splits the data into subsets, computes summary statistics for each, and returns the result in a convenient form.
即,适用于对于分组进行统计,首先需要明确的三个内容:
A、The data that we want to aggregate,主要是data.frame或者公式
B、The variable to group by within the data,要求是list格式
C、The calculation to apply to the groups,也可以是自定义的函数
Any function that can be applied to a numeric variable can be used within aggregate. Maximum, minimum, count, standard deviation and sum are all popular.
其实也就对应于函数的3个主要参数(x、by、FUN):
aggregate(x = breast$time_survival, by = list(breast$ER), FUN = quantile, probs = c(0.25, 0.5, 0.75))
Group.1 x.25% x.50% x.75% 1 neg 29 84 103 2 pos 44 86 109
或使用公式的格式:
aggregate(time_survival~ER, data = breast, quantile, probs = c(0.25, 0.5, 0.75))
ER timesurvival.25% timesurvival.50% time_survival.75% 1 neg 29 84 103 2 pos 44 86 109
可见,使用 aggregate
函数完成了脚本极大的精简!
同理,或许现在你已经知道如何更简便的获取对应同一基因的不同探针的表达均值、中值、最大值了?
往期系列推送:
想学R?从看R界传奇老司机的免费讲座开始吧
为什么要学习作图、R语言可视化?
SangerBox:一款好用的生物信息分析可视化工具
浅谈一款进阶软件R的实际运用
Emacs中使用R,开箱即用版本
数据挖掘专题 | 使用ggpubr绘制箱式图(基础篇)
R语言概述
R入门教程之变量
专题 | R语言基础篇—列表,因子和数据框
专题 | R语言基础篇—矩阵
生存分析——R语言
“R”语言基础列之(一)——学渣也能搞定高大上的“R”语言啦
R语言基础系列之 (二) ————给我一个爱上你的理由
R软件基本操作,第三课 |【小白学R系列】
第四课~!安装 |【小白学R系列】
第五课 Packages |【小白学R系列】
第六课 R的内置数据集 |【小白学R系列】
第七课 送ncRNA数据库偶! |【小白学R系列】
第八课 R语言数据结构 |【小白学R系列】
第九课 向量的索引 |【小白学R系列】
第十课 向量的计算 |【小白学R系列】
第十一课 矩阵 |【小白学R系列】
第十二课 数组 |【小白学R系列】
第十三课 列表 |【小白学R系列】
第十四课 数据框 |【小白学R系列】
第十五课 因子 |【小白学R系列】
第十六课 缺失数据 |【小白学R系列】
第十七课 字符串 |【小白学R系列】
第十八课 时间日期处理 |【小白学R系列】
发送生信到本公众号(freescience联盟)后台,查看更多R系列推文~
欢迎各位亲来稿分享学习心得、笔记~
来稿请发至邮箱:freescienceunion@sina.com
1) 稿件必须为原创,如有抄袭,导致法律纠纷由投稿人承担;
2) 字数:字数无要求,漫画形式也可;
3) 内容:生信方法、科研技巧、科研经验、实验方法,临床案例等,只要对科研学习有帮助,都在推送范围内。
注意:没有稿费,没有稿费,没有稿费……
本公众号暂时没有任何收入,推送均为编编组业余时间的分享ღ
Freescience联盟QQ交流群: 321950419
(点 这里 和 这里 认识我们哦~)
点 这里 领我们整理的软件库
点 这里 查看sci文章润色服务
点 这里 看R界传奇老司机直播录像
点 这里 进免费免安装的文献下载神器
点本文左下角的 阅读原文,手机端可关键词检索历史推送资料
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。