使用 gg_chunk() 时的灵活错误:点 [[1L]][[1L]] 中的错误:类型 'closure' 的对象不可子集化

Flextable error when using gg_chunk(): Error in dots[[1L]][[1L]] : object of type 'closure' is not subsettable

我正在尝试使用 flextable 使用 gg_chunk() 在单元格内生成带有 ggplots 的 table 但是我一直收到错误:点错误 [[1L]][[ 1L]] :类型 'closure' 的对象不是子集 table 即使我尝试使用 officeodown 模板 运行 来自 rmarkdown 的代码。

这是我使用的代码:

  library(flextable)
  library(dplyr)
  library(purrr)
  
  df <-
    iris %>% select(Species, Petal.Width) %>% group_by(Species) %>% nest(data = c(Petal.Width))
  
  gg <- function(x) {
    d <- x %>% mutate(x = row_number()) %>% rename(y = 1)
    p <- ggplot(d) +
      geom_line(aes(x, y)) +
      theme_void()
    list(p)
  }
  
  df_gg <- df %>% mutate(gg = map(data, ~ gg(.x)))
  
  ft <- flextable(data = df_gg) %>%
    compose(j = "gg", value = as_paragraph(gg_chunk(
      value = gg,
      width = 1.5,
      height = .4
    ))) %>%
    autofit()
  ft

感谢任何帮助!

这似乎是 purrr::compose 和 flextable::compose 的问题。

这应该有效:

library(flextable)
library(dplyr)
library(tidyr)
library(purrr)
library(ggplot2)

df <-
  iris %>% select(Species, Petal.Width) %>% group_by(Species) %>% nest(data = c(Petal.Width))

gg <- function(x) {
  d <- x %>% mutate(x = row_number()) %>% rename(y = 1)
  p <- ggplot(d) +
    geom_line(aes(x, y)) +
    theme_void()
  list(p)
}

df_gg <- df %>% mutate(gg = map(data, ~ gg(.x)))

ft <- flextable(data = df_gg) %>%
  compose(j = "gg", value = as_paragraph(gg_chunk(
    value = gg,
    width = 1.5,
    height = .4
  ))) %>%
  autofit()
ft