日本一意孤行?国际原子能机构认为福岛处理水排海计划符合国际安全标准

普里戈津之死!我的三点评论!

从人类历史,看人类未来

目录一览!马工程重点教材《习近平新时代中国特色社会主义思想概论》

从福岛核废水说起:我们是在谈科学还是讲立场

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

那就再讲讲三行R代码搞定的森林图吧

谷鸿秋 统计札记 2023-02-24


有心的小伙伴后台问公众号是否改名了。哈哈,是的。以前为了显示Big的名字「StatsThinking」难写难记,现在开始,可以采用中文名「统技思维」搜索了。对的,你没看错,是「统技思维」:聊聊统计,讲讲技术,谈谈思维。另补充:与罗辑思维没有关系啊。



前一篇和大家聊了森林图的各种实现方法,重点介绍了EXCEL搞定森林图的11步大法。


参考:玩转森林图的n种方法,总有一种适合你!


有几位读者反馈,其实用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格式图,效果如下:


↑R 图最终效果




关注「统技思维」,后台回复「csvdata」推送示例数据文件。


周一啦,努力干活啦!


版权说明:


  • 感谢支持鼓励,形式包括不限于转发,转载,推荐,赞赏。

  • 微信公众平台的非商业培训机构公众号,无需授权,可直接转载。

  • 网站转载,不得省略作者信息,包括公众号二维码。



文章有问题?点此查看未经处理的缓存