2017-06-14 90 views
0

如何将脚本中的DT::datatable对象显示到pdf文档中?我的代码到目前为止分解,出现以下错误:如何使用rmarkdown在pdf中呈现DT :: datatables?

processing file: reportCopy.Rmd 
output file: reportCopy.knit.md 
Functions that produce HTML output found in document targeting latex output. 
Please change the output type of this document to HTML. 

包括在YAML头always_allow_html: yes抑制错误,但没有出现在PDF格式。

我将不胜感激任何帮助。我的代码是目前:

--- 
title: "DT" 
output: pdf_document 
--- 

### Chart 1 
```{r} 
DT::datatable(head(mtcars)) 
``` 

(我不知道它的问题,但我的数据表是在shiny应用程序中创建其实理想的情况下,我也希望有简单地倒入的分段表。脚本...但我切换策略,现在尝试使表直接在代码)

+1

如果你是谁在渲染表灵活,有[其他表选项(HTTP:/ /rmarkdown.rstudio.com/lesson-7.html)for R Markdown like'knitr :: kable'。 –

+0

@AdamSpannbauer感谢您的回答。我想我可能确实必须切换到kable ..但我宁愿不这样做,因为整个代码库(来自Shiny应用程序)都是使用DT :: datatables编写的。 – hartmut

+1

你不能在'pdf_document'中使用'datatable'('datatable'是交互式的),只能在'html_document'中使用! PDF的唯一可能性是使用'kable'或者例如'pandoc.table' –

回答

1

由于knitr v1.13,HTML窗口小部件将自动呈现为通过webshot软件包截图。

您需要安装webshot包和PhantomJS:

install.packages("webshot") 
webshot::install_phantomjs() 

(见https://bookdown.org/yihui/bookdown/html-widgets.html

+0

不幸的是,我无法执行第二行代码(我在https://stackoverflow.com/questions/44563874/r-webshotinstall-phantomjs-error-403上提出了这个问题,但它没有得到回答)。但我很高兴知道解决最初的问题存在! – hartmut

1

不能使用在pdf_documentdatatabledatatable是互动的,PDF格式是静态的),只能在html_document! 对PDF的唯一可能是使用kable或例如pandoc.table

- >如果你真的想要得到的datatable的外观和你说datatable是在shiny应用程序中创建,然后你可以有一个请查看webshot包,该包将从shiny应用程序创建您的datatable屏幕截图,您可以在pdf中将其作为图像进一步使用。