将多个 gt 表合并为一个图

ahb*_*bon 5 r cowplot patchwork gt gtextras

使用下面的代码(根据此处的代码进行编辑)我生成了两个带有gt包的示例表:

library(tidyverse)
library(patchwork)
library(gt)

p1 <- mtcars %>% 
  head(5) %>% 
  gt()

p2 <- mtcars %>% 
  tail(5) %>% 
  gt()

# using wrap elements because this seems to be the answer to non-ggplot grobs e.g. #164 
wrap_elements(full = p1 | p2)
grid.arrange(p1, p2, ncol=2, top="Main Title")
Run Code Online (Sandbox Code Playgroud)

出去:

Error in p1 | p2 : 
  operations are possible only for numeric, logical or complex types
Run Code Online (Sandbox Code Playgroud)

我希望将它们合并为一个 ggplot 对象:p <- (p1 | p2)使用patchwork包,但我还没有找到有效的答案。

我还尝试使用as_ggplot()函数将其转换为 ggplot:

library(bstfun)

mtcars %>%
  head(5) %>%
  gt() %>% 
  as_ggplot()
Run Code Online (Sandbox Code Playgroud)

但它会引发一个错误:

Error: '.assert_package' is not an exported object from 'namespace:broom.helpers'
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?感谢您提前的帮助。

参考:

R - 将两个 gt 对象组合在单个页面输出中

man*_*nro 7

我可以向您提供这个解决方案:

1. 我们获取您的数据:

   p1 <- mtcars %>% 
      head(5) %>% 
      gt()

   p2 <- mtcars %>% 
      tail(5) %>% 
      gt()
Run Code Online (Sandbox Code Playgroud)

2. 让我们将表格保存为 .png 格式:

    p1 %>%
       gtsave("p11.png", path = "Your_working_dir")
    p2 %>%
       gtsave("p12.png", path = "Your_working_dir")
Run Code Online (Sandbox Code Playgroud)

3. 让我们合并您的表格:

    library(cowplot)
    p111 <- ggdraw() + draw_image("p11.png", scale = 0.8)
    p112 <- ggdraw() + draw_image("p12.png", scale = 0.8)
    plot_grid(p111, p112)
Run Code Online (Sandbox Code Playgroud)

我们的结果:

在此输入图像描述