首页 > 解决方案 > 如何将森林图存储在要在 R 中调用的对象中?

问题描述

关于如何在 R 中存储和调用森林图的一个小问题。我正在使用 R 中的元函数创建森林图。我可能需要存储图形并稍后在查看器中调用。我试过这个表达式:

forest.meta <- forest(meta,  [...])

其中 [...] 是选项,但是当我键入“forest.meta”时,我会在查看器中再次收到“null”错误而不是图表。

我哪里错了?

预先感谢您的任何帮助。

标签: rgraphforestplot

解决方案


你会得到NULL,因为这就是函数返回的内容,就像 base R 所做的plot一样。这不像ggplot返回一个实际的绘图对象供您操作。

然而,一切都没有丢失。由于forest使用网格图形进行绘图,我们可以获取绘图窗口的内容,将它们存储为图形对象的集合,稍后再次绘制它们:

library(meta)

data(Olkin1995)

m1 <- metabin(ev.exp, n.exp, ev.cont, n.cont,
              data = Olkin1995, subset = c(41, 47, 51, 59),
              sm = "RR", method = "I",
              studlab = paste(author, year))

forest(m1)

在此处输入图像描述

# Now grab the plot
my_plot <- grid::grid.grab()

绘图现在存储为my_plot,所以假设我们想同时使用绘图窗口做其他事情

plot(1:10)

完成后,我们可以通过执行以下操作来回忆完全相同的情节:

grid::grid.newpage()
grid::grid.draw(my_plot)

在此处输入图像描述


推荐阅读