body_add_flextable 返回错误 - 'docx_str' 没有适用的方法
body_add_flextable returning error - no applicable method for 'docx_str'
我一直在尝试使用 officer 将通过 rtable::FlexPivot 创建的 flextable 添加到 word 文档中。
library(magrittr)
library(rtable)
library(officer)
library(flextable)
data = mtcars
data = group_by(data, vs, am, gear, carb)
data = summarise(data, avg = mean( mpg ), min = min( mpg ))
data$avg_col = ifelse( data$avg < 17, "red", "black" )
data$min_col = ifelse( data$min < 20, "gray", "purple" )
data$avg = sprintf( "%.3f", data$avg)
data$min = sprintf( "%.2f", data$min)
ft = FlexPivot( dataset = data, space = FALSE, columns.transpose = TRUE,
id = c("gear", "carb"), transpose = c("vs", "am"),
columns = c("avg", "min"),
color = c("avg"="avg_col", "min" = "min_col") )
my_doc <- read_docx() %>%
body_add_par(value='Some text etc etc') %>%
body_add_flextable(value=ft)
这 returns 一条错误消息说
Error in UseMethod("docx_str") : no applicable method for
'docx_str' applied to an object of class "FlexTable"
知道是什么原因造成的吗?我正在使用 pandoc 2.1.3。 pandoc_version() returns '2.1.3'.
rtable
旨在与 ReporteRs
一起使用,而不是与 officer
一起使用。请注意,ReporteRs 包将于 2018 年 7 月 16 日从 CRAN 中删除(由于与 java >=9 不兼容),包 officer
正在替换 ReporteRs
并且包 flextable
是替换 ReporteRs::FlexTable
个对象。
newFT <- flextable(ft) #add this line
#then this
my_doc <- read_docx() %>%
body_add_par(value='Some text etc etc') %>%
body_add_flextable(value=newFT)
我一直在尝试使用 officer 将通过 rtable::FlexPivot 创建的 flextable 添加到 word 文档中。
library(magrittr)
library(rtable)
library(officer)
library(flextable)
data = mtcars
data = group_by(data, vs, am, gear, carb)
data = summarise(data, avg = mean( mpg ), min = min( mpg ))
data$avg_col = ifelse( data$avg < 17, "red", "black" )
data$min_col = ifelse( data$min < 20, "gray", "purple" )
data$avg = sprintf( "%.3f", data$avg)
data$min = sprintf( "%.2f", data$min)
ft = FlexPivot( dataset = data, space = FALSE, columns.transpose = TRUE,
id = c("gear", "carb"), transpose = c("vs", "am"),
columns = c("avg", "min"),
color = c("avg"="avg_col", "min" = "min_col") )
my_doc <- read_docx() %>%
body_add_par(value='Some text etc etc') %>%
body_add_flextable(value=ft)
这 returns 一条错误消息说
Error in UseMethod("docx_str") : no applicable method for 'docx_str' applied to an object of class "FlexTable"
知道是什么原因造成的吗?我正在使用 pandoc 2.1.3。 pandoc_version() returns '2.1.3'.
rtable
旨在与 ReporteRs
一起使用,而不是与 officer
一起使用。请注意,ReporteRs 包将于 2018 年 7 月 16 日从 CRAN 中删除(由于与 java >=9 不兼容),包 officer
正在替换 ReporteRs
并且包 flextable
是替换 ReporteRs::FlexTable
个对象。
newFT <- flextable(ft) #add this line
#then this
my_doc <- read_docx() %>%
body_add_par(value='Some text etc etc') %>%
body_add_flextable(value=newFT)