0

我正在 R 中创建一个森林图。由于我无法显示我自己的数据,我正在使用我在此处找到的示例代码和数据 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"))

我想在 Heterogeniety 的最后一个标签上标上标。我尝试了表达式(Heterogeniety~I^2),但收到以下错误消息:

cbind(c("Outcome", "Death or BPD", NA, NA, NA, "Interaction p value = .xx", 中的错误:无法从“表达式”类型创建矩阵

如何在我的森林图中包含上标?

4

1 回答 1

0

R 不允许您创建表达式矩阵。在文档中也提到了forestplot

您也可以提供一个矩阵,尽管这不能有设计的表达式

幸运的是,文档forestplot还提到它可以包含labeltext.

列表应包含在 mxn 数字中以类似于矩阵: list(list("rowname 1 col 1", "rowname 2 col 1"), list("r1c2", expression(beta))

因此,您可能希望将您的列表转换tabletext为嵌套列表,如下所示:

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。

于 2017-03-24T06:32:01.333 回答