Как сохранить flextable как png в R
Я уже следовал рекомендации ссылки: R сохранить FlexTable как HTML-файл в сценарии, но, похоже, я столкнулся с другой проблемой, потому что это решение не сработало для меня. vanilla.table ()
Функция генерирует объект, отличный от flextable ()
функция.
я использую flextable
потому что это допускает желаемые возможности форматирования
Пример:
library(flextable)
library(rtable)
# The example below work.
myft <- vanilla.table(
head(mtcars) )
myft
writeLines(as.html(myft), "MyFlexTable.html")
# The example below does not work.
myft <- regulartable(
head(mtcars),
col_keys = c("am", "carb", "gear", "mpg", "drat" ))
myft
writeLines(as.html(myft), "MyFlexTable.html")
PS: я знаю, что можно загрузить фотографию вручную, нажав "Экспорт> Сохранить как изображение", однако мне нужно, чтобы она была запрограммирована
заранее спасибо!
1 ответ
Чтобы сохранить гибкую таблицу в виде png, сначала необходимо сохранить ее в виде html-файла, а затем использовать webshot для получения png из html-файла.
library(flextable)
myft <- regulartable(
head(mtcars),
col_keys = c("am", "carb", "gear", "mpg", "drat" ))
# create an Rmd file ----
library(rmarkdown)
rmd_name <- tempfile(fileext = ".Rmd")
cat("```{r echo=FALSE}\nmyft\n```", file = rmd_name)
# render as an html file ----
html_name <- tempfile(fileext = ".html")
render(rmd_name, output_format = "html_document", output_file = html_name )
# get a png from the html file with webshot ----
library(webshot)
webshot(html_name, zoom = 2, file = "regulartable.png",
selector = "body > div.container-fluid.main-container > div.tabwid > table")