赞
踩
在既往文章中,我们对孟德尔随机化研究做了一个简单的介绍。我们可以发现,使用TwoSampleMR包做出来的森林图并不是很美观。今天我们使用R语言forestploter包优雅的绘制孟德尔随机化研究森林图。
使用TwoSampleMR包做出来的森林图是这样的
而很多SCI文章中的森林图是这样的
我们今天来做个上图这样的森林图,使用的是《R语言复现一篇6分的孟德尔随机化文章》的数据,这篇文章作者直接提供了数据,所以我就直接拿来用了。作者分析了很多精神病和骨密度的结果,这里我就取精神分裂症和骨密度结果来分析
使用R语言优雅的绘制孟德尔随机化研究森林图
代码:
library("readxl") setwd("E:/公众号文章2023年/孟德尔随机化研究/使用R语言优雅的绘制孟德尔随机化研究森林图") bc <- read_excel("Mendelian.xlsx",1) library(stringr) names(bc) cl<-bc$`95%Cl` bc$low<-str_sub(cl,1,5) bc$hi<-str_sub(cl,7,11) ########## library(grid) library(forestploter) bc$Outcome<- ifelse(!is.na(bc$`sample size`), bc$Outcome, paste0(" ", bc$Outcome)) bc$hi<-as.numeric(bc$hi) bc$low <-as.numeric(bc$low) bc$`sample size`<-as.numeric(bc$`sample size`) ######## bc$`sample size` <- ifelse(is.na(bc$`sample size`), "", bc$`sample size`) bc$`P-Value` <- ifelse(is.na(bc$`P-Value`), "", bc$`P-Value`) #########生成一个变量se,它在绘图的时候表示正方形的大小 bc$se <- (log(as.numeric(bc$hi)) - log(as.numeric(bc$OR)))/1.96 ######## bc$` ` <- paste(rep(" ", 20), collapse = " ") ######## bc$`OR (95% CI)` <- ifelse(is.na(bc$se), "", sprintf("%.2f (%.2f to %.2f)", bc$OR, bc$low, bc$hi))#sprintF返回字符和可变量组合 str(bc) bc$`sample size`<-as.numeric(bc$`sample size`) bc$`sample size` <- ifelse(is.na(bc$`sample size`), "", bc$`sample size`) bc$se<-round(as.numeric(bc$se),3) bc$se<- ifelse(is.na(bc$se), "", bc$se) ###########3 ##############3成功 forest(bc[,c(1:2,9,10,5)], est = bc$OR, #效应值 lower = bc$low, #可信区间下限 upper = bc$hi, #可信区间上限 sizes = bc$se, ci_column = 4, #在那一列画森林图,要选空的那一列 ref_line = 1, arrow_lab = c("No Schizophrenia", "Schizophrenia"), xlim = c(0, 4), ticks_at = c(0.5, 1, 2, 3), footnote = "This is the demo data. Please feel free to change\nanything you want.") ######### tm <- forest_theme(base_size = 10, #文本的大小 # Confidence interval point shape, line type/color/width ci_pch = 15, #可信区间点的形状 ci_col = "#762a83", #CI的颜色 ci_fill = "blue", #ci颜色填充 ci_alpha = 0.8, #ci透明度 ci_lty = 1, #CI的线型 ci_lwd = 1.5, #CI的线宽 ci_Theight = 0.2, # Set an T end at the end of CI ci的高度,默认是NULL # Reference line width/type/color 参考线默认的参数,中间的竖的虚线 refline_lwd = 1, #中间的竖的虚线 refline_lty = "dashed", refline_col = "grey20", # Vertical line width/type/color 垂直线宽/类型/颜色 可以添加一条额外的垂直线,如果没有就不显示 vertline_lwd = 1, #可以添加一条额外的垂直线,如果没有就不显示 vertline_lty = "dashed", vertline_col = "grey20", # Change summary color for filling and borders 更改填充和边框的摘要颜色 summary_fill = "yellow", #汇总部分大菱形的颜色 summary_col = "#4575b4", # Footnote font size/face/color 脚注字体大小/字体/颜色 footnote_cex = 0.6, footnote_fontface = "italic", footnote_col = "red") #################3 forest(bc[,c(1:2,9,10,5)], est = bc$OR, #效应值 lower = bc$low, #可信区间下限 upper = bc$hi, #可信区间上限 sizes = bc$se, ci_column = 4, #在那一列画森林图,要选空的那一列 ref_line = 1, arrow_lab = c("No Schizophrenia", "Schizophrenia"), xlim = c(0, 4), ticks_at = c(0.5, 1, 2, 3), footnote = "This is the demo data. Please feel free to change\nanything you want.", theme = tm)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。