使用 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
我正在尝试使用 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