在R中手动引入数据的森林图

在R中手动引入数据的森林图,r,manual,journal,forestplot,R,Manual,Journal,Forestplot,我最近刚收到我所在大学的一些数据。我已被命令创建一个具有优势比的森林图,但主要问题是,除了最终值之外,我无法访问数据集。我只有一个excel,里面有ORs、95%置信区间、总体、p值和变量 我想在NEJM上创建一个类似于此的森林地块,但我不知道如何才能做到这一点。如果有人能帮助我,我将非常感激。我在平台中看到过类似的问题,但没有一个是面向人工引入的信息,而无需进行计算或回归 我给你留了一个链接到我心目中的形象 谢谢你的帮助。我的处境与你相似。我只有OR和CI。我已经创建了以下森林图,将我的数据

我最近刚收到我所在大学的一些数据。我已被命令创建一个具有优势比的森林图,但主要问题是,除了最终值之外,我无法访问数据集。我只有一个excel,里面有ORs、95%置信区间、总体、p值和变量

我想在NEJM上创建一个类似于此的森林地块,但我不知道如何才能做到这一点。如果有人能帮助我,我将非常感激。我在平台中看到过类似的问题,但没有一个是面向人工引入的信息,而无需进行计算或回归

我给你留了一个链接到我心目中的形象


谢谢你的帮助。

我的处境与你相似。我只有OR和CI。我已经创建了以下森林图,将我的数据输入到向量中。您应该检查名为forestplot的包及其附带的文档

test_data <- data.frame(coef1 =c(1.85, 1.86, 1.88, 1.45, 1.64, 1.54, 1.45, 1.64, 1.54, 1.45, 1.64),
                    coef2 =c(1.54, 1.45, 1.64, 1.54, 1.85, 1.86, 1.88, 5.85, 5.86, 5.88, 1.45),
                    coef3 =c(1.64, 1.54, 1.45, 1.64, 1.54, 1.45, 1.64, 1.54, 1.45, 1.64, 1.54),
                    low1  =c(1.45, 1.25, 1.30, 1.10, 1.20, 1.25, 1.15, 1.30, 1.15, 1.15, 1.30),
                    low2  =c(1.15, 1.15, 1.30, 1.15, 1.45, 1.25, 1.30, 3.45, 3.25, 3.30, 1.10),
                    low3  =c(1.20, 1.25, 1.10, 1.20, 1.25, 1.10, 1.20, 1.25, 1.10, 1.20, 1.25),
                    high1 =c(2.52, 2.10, 2.30, 2.54, 2.52, 2.25, 2.54, 2.52, 2.25, 2.54, 2.52),
                    high2 =c(2.25, 3.54, 3.52, 3.25, 2.52, 2.10, 2.30, 7.52, 7.10, 7.30, 2.54),
                    high3 =c(2.52, 2.25, 2.54, 2.52, 2.25, 2.54, 2.52, 2.25, 2.54, 2.52, 2.25))

tabletext<- c("Diabetes", "Heart disease", "Stroke", "COPD", "Asthma", 
"Cancer", "Arthtitis", "Osteoporosis", "Depression", "Severe mental diseases", 
"Dementia")


coef <- with(test_data, cbind(coef1, coef2, coef3))
low <- with(test_data, cbind(low1, low2, low3))
high <- with(test_data, cbind(high1, high2, high3))

library(forestplot)
forestplot(tabletext, coef, low, high,
       title="Comorbidities",
       zero= 1,
       lwd.zero = gpar(lwd=1),
       boxsize=0.18,
       line.margin = .1,
       xticks = c(0:8),
       clip=c(0, 8),
       fn.ci_norm = c(fpDrawNormalCI, fpDrawDiamondCI, fpDrawCircleCI),
       col=fpColors(box=c("darkblue", "darkred", "darkgreen"),
                    line=c("darkblue", "darkred", "darkgreen"),
                    zero = "black"),
       xlab="Odds ratio (95% CI)",
       new_page = TRUE,
       txt_gp = fpTxtGp(label = list(gpar(fontfamily = "Times New Roman", cex=1),
                                     xlab  = gpar(fontfamily = "Times New Roman", cex=1),
                                     ticks = gpar(fontfamily = "Times New Roman", cex=0.8),
                                     title = gpar(fontfamily = "Times New Roman", cex=1.2))),
       legend=c("Unadjusted", "Adjusted for Age and Sex", "Adjusted for all"),
       legend_args = fpLegend(title="Model Adjustment",
                              pos = "top",
                              r=unit(.2, "snpc"),
                              gp = gpar(col="black", fill= "white", lwd=0.7)))

test\u数据提供示例数据。森林地块不需要数据,只有OR(CI)就足够了。是的,但我希望有一个类似的布局。我拥有所有数据,但不知道如何编写代码。请提供示例数据: