Удалить пробел между двумя графиками, полученными в результате функции grid.arrange в R - PullRequest
0 голосов
/ 10 октября 2018

Я хотел бы устранить пробел между двумя лесными участками, которые я рисовал рядом с помощью grid.arrange ().

Прежде чем вы проголосуете или переадресовываете - прежде чем задать этот вопрос, я потратил часы, пытаясь найти решение по каждому из приведенных здесь ответов, чтобы найти похожие вопросы, но не достиг желаемого результата.

Во-первых, вот мой набор данных и код:

library(meta)
library(grid)
library(gridExtra)

df <- structure(list(study    = 1:7,
                     sens     = c(0.88, 0.86, 0.75, 0.9, 0.91, 0.93, 0.98),
                     sens.se  = c(0.13, 0.08, 0.2, 0.06, 0.13, 0.15, 0.66),
                     sens2    = c(0.76, 0.68, 0.9, 0.82, 0.76, 0.85, 0.76),
                     sens.se2 = c(0.14, 0.08, 0.2, 0.06, 0.14, 0.15, 0.66)),
                class = "data.frame",
                row.names = c(NA, -7L))

## setting up meta-analysis model using library(meta)
res1 <- metagen(TE=sens, seTE=sens.se, data=df, studlab=study)
res2 <- metagen(TE=sens2, seTE=sens.se2, data=df, studlab=study)

## changing plots to grid graphical objects to use grid.arrange
fp1 <- grid.grabExpr(forest(res1, data=df, method.tau="REML", 
                            comb.random=TRUE, leftcols="studlab",
                            rightcols=c("effect", "ci")))
fp2 <- grid.grabExpr(forest(res2, data=df, method.tau="REML", 
                            comb.random=TRUE, leftcols="studlab",
                            rightcols=c("effect", "ci")))

## arranging plots side by side:
grid.arrange(fp1, fp2, ncol = 2)

Когда я пытался использовать код, предложенный в ответах на аналогичные вопросы, я получаю сообщение об ошибке «только gbs разрешены в gList»код, хотя R распознает графики как "gTrees", потому что я использовал функцию grid.grabExpr.Я пытался принудительно заставить gTrees создать гроб через:

p1 <- as.grob(fp1)
p2 <- as.grob(fp2)

, который создает только нулевые значения в глобальной среде.

Я был бы очень признателен за помощь в этом!

1 Ответ

0 голосов
/ 10 октября 2018

Возможно, это то, что вы ищете:

grid.grabExpr(
  forest(
    res1, data=df, method.tau="REML", 
    comb.random=TRUE, leftcols="studlab",
    rightcols=c("effect", "ci")
  ),
  height = 1, width = 2
) -> fp1

grid.grabExpr(
  forest(
    res2, data=df, method.tau="REML", 
    comb.random=TRUE, leftcols="studlab",
    rightcols=c("effect", "ci")
  ),
  height = 1, width = 2
) -> fp2

grid.arrange(fp1, fp2, ncol = 2, vp=viewport(width=1, height=1, clip = TRUE))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...