那就再讲讲三行R代码搞定的森林图吧
有心的小伙伴后台问公众号是否改名了。哈哈,是的。以前为了显示Big的名字「StatsThinking」难写难记,现在开始,可以采用中文名「统技思维」搜索了。对的,你没看错,是「统技思维」:聊聊统计,讲讲技术,谈谈思维。另补充:与罗辑思维没有关系啊。
前一篇和大家聊了森林图的各种实现方法,重点介绍了EXCEL搞定森林图的11步大法。
有几位读者反馈,其实用EXCEL的Stock Plot也能比较方便的绘制点估计及其95%CI 的误差图。
↑Stock plot
↑Stock plot效果
不过需要留意两点:
数据列的顺序是: 95%I上限, 95%CI下限,点估计值。
图是纵向的,需要后期旋转成横向。
另外,用EXCEL画图的遗憾:
手动步骤太麻烦(码农的通病)
后期处理成矢量图不太方便
码农总是再想用代码解决问题,既然EXCEL手动操作太麻烦,导出矢量图又不方面,于是乎,后台就有很多小伙伴问,三行R代码呢?
好吧,满足你们的要求,谁让我这么爱你们。
首先,没有安装R软件的同学需要下载安装R。如果你曾经被SAS安装伤透了心,这次你可以放100个心,安装R就像安装一个搜狗输入法一样,而且他是免费开源的。
R安装包清华镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/CRAN/
同时强烈推荐下载安装R软件华丽的外套:Rstudio。
Rstudio下载:https://www.rstudio.com/products/rstudio/download/
接下来,可以动手小试牛刀了。
1. 安装并加载forestplot包。
install.packages("forestplot")
library("forestplot")
2. 读入数据文件,建议把数据文件存在csv文件里。
dat <- read.csv("D:/Plot Forest data.csv", header = FALSE)
注意:
windows地址在R里要改「\」为「/」或者为「\\」
数据整理成如下格式
3.用forestplot画图。
forestplot(as.matrix(dat[,1:6]), dat$V7,dat$V8,dat$V9,
graph.pos= 5, graphwidth = unit(50,"mm"), is.summary = c(TRUE,rep(FALSE,10)), boxsize=0.2, line.margin=unit(1,"mm"), lineheight = unit(10,'mm'), colgap = unit(3,"mm"), zero=1, xticks = c(0.0,0.5,1.0,1.5))
函数式编程的缺点就是函数参数太别多,这是为做更多细节的调整。其实最基本的也就前面4个参数。
as.matrix(dat[,1:6]),告诉R,我们要数据的前6列作为文本,数据要转换为矩阵形式,所以用来as.matrix函数。
dat$V7,dat$V8,dat$V9,告诉R,这是点估计以及95%CI的上下限,用来绘制森林图的效应值及其误差线。
后面的参数是对图的位置,宽度,汇总效应,点估计图的大小,行列间隔,以及无效线,坐标轴等做的更细致的设置。
接下来,可以导出各种矢量图了。
↑R 图导出图片
↑R 图导出格式选项
最终导出期刊常用的TIFF格式图,效果如下:
关注「统技思维」,后台回复「csvdata」推送示例数据文件。
周一啦,努力干活啦!
版权说明:
感谢支持鼓励,形式包括不限于转发,转载,推荐,赞赏。
微信公众平台的非商业培训机构公众号,无需授权,可直接转载。
网站转载,不得省略作者信息,包括公众号二维码。