It's called a forest plot, you can download the r package. It's about getting the data into the right format required by the plot. We can use a dataset from metafor
, calculate the odds ratio, and include it together with 95% confidence interval as one of the columns:
library(forestplot)
library(broom)
data = metafor::dat.bcg
res = apply(data[,c("tpos","tneg","cpos","cneg")],
1,function(i)tidy(fisher.test(matrix(i,ncol=2,byrow=TRUE))) )
res = do.call(rbind,res)[,1:4]
naming = list(
"study"=paste(data$author,data$year),
"odds ratio[95% CI]" = paste(round(res$estimate,digits=2),
"[",
round(res$conf.low,digits=2),"-",
round(res$conf.high,digits=2),"]")
)
forestplot(labeltext = naming,
mean = log(res$estimate), upper = log(res$conf.high),
lower = log(res$conf.low))

The example you showed, i think it's putting together quite a few forestplot which might require more effort. You can also check out this book example