首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >4组森林图

4组森林图
EN

Stack Overflow用户
提问于 2022-08-10 07:09:30
回答 1查看 82关注 0票数 0

我感兴趣的是复制这个例子,下面是4个治疗组,并排,4列,而不是2列,如本例所示。我不知道该怎么做,我需要一些帮助。

install.packages("forestploter")

例子:

代码语言:javascript
复制
dt <- read.csv(system.file("extdata", "example_data.csv", package = "forestploter"))
# indent the subgroup if there is a number in the placebo column
dt$Subgroup <- ifelse(is.na(dt$Placebo), 
                      dt$Subgroup,
                      paste0("   ", dt$Subgroup))

# NA to blank or NA will be transformed to carachter.
dt$`n` <- ifelse(is.na(dt$Treatment), "", dt$Treatment)
dt$`n ` <- ifelse(is.na(dt$Placebo), "", dt$Placebo)

# Add two blank column for CI
dt$`CVD outcome` <- paste(rep(" ", 20), collapse = " ")
dt$`COPD outcome` <- paste(rep(" ", 20), collapse = " ")

# Set-up theme
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"))

p <- forest(dt[,c(1, 19, 21, 20, 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(3, 5),
            ref_line = 1,
            vert_line = c(0.5, 2),
            nudge_y = 0.2,
            theme = tm)

plot(p)

预期地块

任何帮助都是非常感谢的。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-08-26 20:50:18

您可以为每个评估提供CI列。下面是一个演示:

代码语言:javascript
复制
dt <- read.csv(system.file("extdata", "example_data.csv", package = "forestploter"))
# indent the subgroup if there is a number in the placebo column
dt$Subgroup <- ifelse(is.na(dt$Placebo), 
                      dt$Subgroup,
                      paste0("   ", dt$Subgroup))

# NA to blank or NA will be transformed to carachter.
dt$n1 <- ifelse(is.na(dt$Treatment), "", dt$Treatment)
dt$n2 <- ifelse(is.na(dt$Placebo), "", dt$Placebo)
dt$n3 <- ifelse(is.na(dt$Placebo), "", dt$Placebo)
dt$n4 <- ifelse(is.na(dt$Placebo), "", dt$Placebo)

# Add two blank column for CI
dt$Group1 <- paste(rep(" ", 20), collapse = " ")
dt$Group2 <- paste(rep(" ", 20), collapse = " ")
dt$Group3 <- paste(rep(" ", 20), collapse = " ")
dt$Group4 <- paste(rep(" ", 20), collapse = " ")

p <- forest(dt[,c("Subgroup", as.vector(outer(c("n", "Group"), 1:4, paste0)))],
            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(3, 5, 7, 9),
            ref_line = 1)

plot(p)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73302049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档