甘肃省管理系统开发
管理系统开发 你的位置:甘肃省管理系统开发 > 管理系统开发 >

管理系统开发价格 多列着实区间、多组别的丛林图绘制

发布日期:2024-09-28 14:18    点击次数:67

💡专注R话语在🩺生物医学中的使用管理系统开发价格

设为“星标”,精彩可以过

现时R内部绘制丛林图最佳用的R包我以为即是forestploter了,我写过多篇推文先容过丛林图,其中都用到了这个R包,比如:

用更肤浅的神气画丛林图R话语亚组分析及丛林图绘制R话语亚组分析1行代码完满!亚组分析和多身分转头的丛林图相比

而况这个包的作家还在积极颐养中,莫得跑路的趋势~在R中绘制丛林图,天然我先容过许多R包,然而用到当今我最保举的总共是forestploter,莫得之一!

今天再给全球先容下如何使用这个包绘制有多列丛林的丛林图。

app开发

最初全球要显著这个包的使用逻辑,我在画一个顺眼的丛林图一文中就先容过:

此包在画丛林图时,最主要的是2个部分,一个是笔墨形色部分,即图中红框框住的部分,另一部分即是中间的丛林图部分,其余的都是细节修改问题,只消弥散耐性,就一定能颐养到我方温存。

图片

forest plot

其中丛林图,中间的绿色方块是均值(好像其他值),横线的两端是最大值和最小值(比如着实区间的高下限之类的),是以你若是思要画出这个丛林的部分,就需要提供3个值:中间的方块和两端的值。

交融了这个理念之后,使用这个包就容易多了。实质使用时肃肃它的条目即可,要了解其中的细节,乱写细则是不成的。最攻击的3个点是(十分攻击):

第一位杀号:上期第一位奖号为3,第一位奖号3历史上出现694次,前100次该位开出奖号3之后,下期号码0-9出现次数从高到底分别为:号码2→14次,7→13次,3→12次,0、6、8→10次,4、5、9→8次,1→7次。

奇偶形态判断:前面10期奖号中,包含全偶形态1期,两偶一奇形态2期,两奇一偶形态3期,全奇形态4期。

使用空格完满缩进恶果添加空列以甩掉丛林笔墨形色部分的有些NA需要改成空缺

常见的亚组分析的丛林图我就不展示怎样画了,全球参考前边的几篇推文吧,径直演示如何绘制多列着实区间的丛林图。

最初是准备数据:

library(forestploter)library(grid)dt <- read.csv(system.file("extdata", "example_data.csv", package = "forestploter"))dt <- dt[1:7, ]# indent the subgroup if there is a number in the placebo columndt$Subgroup <- ifelse(is.na(dt$Placebo),                       dt$Subgroup,                      paste0("   ", dt$Subgroup))# 这里的NA要改成空缺,不然会在图中清晰为NAdt$n1 <- ifelse(is.na(dt$Treatment), "", dt$Treatment)dt$n2 <- ifelse(is.na(dt$Placebo), "", dt$Placebo)# 添加两列空缺用来甩掉“丛林”dt$`CVD outcome` <- paste(rep(" ", 20), collapse = " ")dt$`COPD outcome` <- paste(rep(" ", 20), collapse = " ")# 构造着实区间,sprintf是一个十分好用的规范化函数,我方学习下dt$ci1 <- paste(sprintf("%.1f (%.1f, %.1f)", dt$est_gp1, dt$low_gp1, dt$hi_gp1),                sprintf("%.1f (%.1f, %.1f)", dt$est_gp3, dt$low_gp3, dt$hi_gp3),                sep = "\n")dt$ci1[grepl("NA", dt$ci1)] <- "" # 把NA酿成空缺,你可以不篡改绘图望望恶果dt$ci2 <- paste(sprintf("%.1f (%.1f, %.1f)", dt$est_gp2, dt$low_gp2, dt$hi_gp2),                sprintf("%.1f (%.1f, %.1f)", dt$est_gp4, dt$low_gp4, dt$hi_gp4),                sep = "\n")dt$ci2[grepl("NA", dt$ci2)] <- "" # 把NA酿成空缺

底下是绘图:

# 主题建设tm <- forest_theme(base_size = 10,                   refline_lty = "solid",                   ci_pch = c(15, 18),                   ci_col = c("#377eb8", "#4daf4a"),                   footnote_col = "blue",                   legend_name = "Group",                   legend_value = c("Trt 1", "Trt 2"),                   vertline_lty = c("dashed", "dotted"),                   vertline_col = c("#d6604d", "#bababa"),                   # Table cell padding, width 4 and heights 3                   core = list(padding = unit(c(4, 3), "mm")))p <- forest(dt[,c(1, 19, 23, 21, 20, 24, 22)],            est = list(dt$est_gp1,                       dt$est_gp2                       # ,dt$est_gp3,                       # dt$est_gp4                       ),            lower = list(dt$low_gp1,                         dt$low_gp2                         # ,dt$low_gp3,                         # dt$low_gp4                         ),             upper = list(dt$hi_gp1,                         dt$hi_gp2                         # ,dt$hi_gp3,                         # dt$hi_gp4                         ),            ci_column = c(4, 7),            ref_line = 1,            vert_line = c(0.5, 2),            #nudge_y = 0.4,            theme = tm)plot(p)

图片

如何绘制有不同分组的丛林图呢?如下图所示,分红了Trt1和Trt2组:

图片

很肤浅,把上头注视掉的代码加上即可,如下所示。

# 主题建设tm <- forest_theme(base_size = 10,                   refline_lty = "solid",                   ci_pch = c(15, 18),                   ci_col = c("#377eb8", "#4daf4a"),                   footnote_col = "blue",                   legend_name = "Group",                   legend_value = c("Trt 1", "Trt 2"),                   vertline_lty = c("dashed", "dotted"),                   vertline_col = c("#d6604d", "#bababa"),                   # Table cell padding, width 4 and heights 3                   core = list(padding = unit(c(4, 3), "mm")))# 第21列和第22列是咱们添加的空缺列,用来放“丛林”的# 在图中,咱们思把这两列“丛林”放在图的第4列和第7列(看着图数一数),管理系统开发价格# 是以21放在第4个,22放在第7个p <- forest(dt[,c(1, 19, 23, 21, 20, 24, 22)],            est = list(dt$est_gp1,                       dt$est_gp2                       ,dt$est_gp3,                       dt$est_gp4                       ),            lower = list(dt$low_gp1,                         dt$low_gp2                         ,dt$low_gp3,                         dt$low_gp4                         ),             upper = list(dt$hi_gp1,                         dt$hi_gp2                         ,dt$hi_gp3,                         dt$hi_gp4                         ),            ci_column = c(4, 7), # “丛林”在图中的位置            ref_line = 1,            vert_line = c(0.5, 2),            nudge_y = 0.4,            theme = tm)plot(p)

图片

这个包对这种情况的惩处十分奥妙。

若是你要画2个丛林,若是你只消1个组,那么你需要准备2套画丛林的数据,比如est=list(dt$est_gp1,dt$est_gp2),就折柳对应着2个丛林中间点的值;若是你有2个组,也即是上头这个例子,那你要准备4套画丛林的数据,比如est=list(dt$est_gp1,dt$est_gp2,dt$est_gp3,dt$est_gp4),对应磋商如下图所示:

图片

两侧端点的值,对应磋商亦然和上图同样的,是以lower和upper亦然各需要4列。这是一个倍数磋商,不知说念你看懂了没~

为了便捷你交融,我把只消1组的对应磋商也标出来:

图片

是以若是你只消1列丛林,然而有3个分组,那你就需要准备3套数据(3列est,3列lower,3列upper),若是你要3列丛林,只消1个分组,那你亦然需要准备3套数据(3列est,3列lower,3列upper),若是你要3列丛林,而况有2个分组,那你需要准备6套数据(6列est,6列lower,6列upper)。

给全球展示一个3列丛林,有2个分组的,先准备下数据:

# 再添加1列空缺用来甩掉“丛林”dt$`测试outcome` <- paste(rep(" ", 20), collapse = " ")# 添加几列画“丛林”的数据Z,偷个懒,径直复制了dt$low_gp5 <- dt$low_gp1dt$low_gp6 <- dt$low_gp3dt$est_gp5 <- dt$est_gp2dt$est_gp6 <- dt$est_gp3dt$hi_gp5 <- dt$hi_gp1dt$hi_gp6 <- dt$hi_gp4

然后遴荐绘图需要的数据,绘图即可,肃肃把丛林放在正确的位置上:

# 主题建设tm <- forest_theme(base_size = 10,                   refline_lty = "solid",                   ci_pch = c(15, 18),                   ci_col = c("#377eb8", "#4daf4a"),                   footnote_col = "blue",                   legend_name = "Group",                   legend_value = c("Trt 1", "Trt 2"),                   vertline_lty = c("dashed", "dotted"),                   vertline_col = c("#d6604d", "#bababa"),                   # Table cell padding, width 4 and heights 3                   core = list(padding = unit(c(4, 3), "mm")))# 肃肃正确遴荐你的“形色”部分和“丛林”部分p <- forest(dt[,c(1, 19, 21, 22, 25)], # 这里是遴荐“形色”部分和甩掉“丛林”的列            est = list(dt$est_gp1,                       dt$est_gp2                       ,dt$est_gp3,                       dt$est_gp4,                       dt$est_gp5,                       dt$est_gp6                       ),            lower = list(dt$low_gp1,                         dt$low_gp2                         ,dt$low_gp3,                         dt$low_gp4,                         dt$low_gp5,                         dt$low_gp6                         ),             upper = list(dt$hi_gp1,                         dt$hi_gp2                         ,dt$hi_gp3,                         dt$hi_gp4,                         dt$hi_gp5,                         dt$hi_gp6                         ),            ci_column = c(3, 4, 5),            ref_line = 1,            vert_line = c(0.5, 2),            nudge_y = 0.4,            theme = tm)plot(p)

图片

是不是很easy呢?

这里我值遴荐了2列形色部分,你可以字据我方的需求粗率添加。我通篇莫得给全球展示数据长什么样,然而全球我方在学习这个包的时代,一定要对照着数据和图通盘看,这么才气更好的交融这个包的理念。

除此以外,这个包的自界说空间十分大,因为是基于grid的,太解放了管理系统开发价格,行高、列宽、前欢乐、背欢乐、字体、对王人神气等等都是可以转换的,多望望匡助文档即可。

本站仅提供存储劳动,总共内容均由用户发布,如发现存害或侵权内容,请点击举报。

下一篇:没有了

Powered by 甘肃省管理系统开发 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024 云迈科技 版权所有