I am creating a forestplot in R. Since I cannot display my own data I am using example code and data that I found here https://cran.r-project.org/web/packages/forestplot/vignettes/forestplot.html
cochrane_from_rmeta <-
structure(list(
mean = c(NA, NA, 0.578, 0.165, 0.246, 0.700, 0.348, 0.139, 1.017, NA, 0.531),
lower = c(NA, NA, 0.372, 0.018, 0.072, 0.333, 0.083, 0.016, 0.365, NA, 0.386),
upper = c(NA, NA, 0.898, 1.517, 0.833, 1.474, 1.455, 1.209, 2.831, NA, 0.731)),
.Names = c("mean", "lower", "upper"),
row.names = c(NA, -11L),
class = "data.frame")
tabletext<-cbind(
c("", "Study", "Auckland", "Block",
"Doran", "Gamsu", "Morrison", "Papageorgiou",
"Tauesch", NA, "Summary"),
c("Deaths", "(steroid)", "36", "1",
"4", "14", "3", "1",
"8", NA, NA),
c("Deaths", "(placebo)", "60", "5",
"11", "20", "7", "7",
"10", NA, NA),
c("", "OR", "0.58", "0.16",
"0.25", "0.70", "0.35", "0.14",
"1.02", NA, "0.53"),
c("",NA,NA,NA,NA,NA,NA,NA,NA,NA,"Heterogeniety I^2 = 20%"))[enter image description here][1]
library(forestplot)
forestplot(tabletext,
cochrane_from_rmeta,new_page = TRUE,
is.summary=c(TRUE,TRUE,rep(FALSE,8),TRUE),
clip=c(0.1,2.5),
xlog=TRUE,
col=fpColors(box="royalblue",line="darkblue", summary="royalblue"))
I would like to superscript the very last label for Heterogeniety. I tried expression(Heterogeniety~I^2), but I get the following error message:
Error in cbind(c("Outcome", "Death or BPD", NA, NA, NA, "Interaction p value = .xx", : cannot create a matrix from type 'expression'
How do I include a superscript in my forestplot?
R does not allow you to create a matrix of expression. Also mentioned in the documentation for forestplot
,
You can also provide a matrix although this cannot have expressions by design
Luckily, the documentation for forestplot
also mentioned that it can take in a list for labeltext
.
The list should be wrapped in m x n number to resemble a matrix: list(list("rowname 1 col 1", "rowname 2 col 1"), list("r1c2", expression(beta))
Hence, you might want to convert your tabletext
into a nested list as follows:
tabletext <- list(
list("", "Study", "Auckland", "Block",
"Doran", "Gamsu", "Morrison", "Papageorgiou",
"Tauesch", NA, "Summary"),
list("Deaths", "(steroid)", "36", "1",
"4", "14", "3", "1",
"8", NA, NA),
list("Deaths", "(placebo)", "60", "5",
"11", "20", "7", "7",
"10", NA, NA),
list("", "OR", "0.58", "0.16",
"0.25", "0.70", "0.35", "0.14",
"1.02", NA, "0.53"),
list("",NA,NA,NA,NA,NA,NA,NA,NA,NA, expression(Heterogeniety~I^2==20~'%')))
forestplot(tabletext,
cochrane_from_rmeta,new_page = TRUE,
is.summary=c(TRUE,TRUE,rep(FALSE,8),TRUE),
clip=c(0.1,2.5),
xlog=TRUE,
col=fpColors(box="royalblue",line="darkblue", summary="royalblue"))
HTH.