在RStudio中使用rmarkdown编织文档时,我想使用特定的函数来打印data.frame(在我的情况下,使用pander获得多行表)。 rmarkdown软件包文档说,除了可以传递给df_print的四个有效方法外,我还可以向其传递任意函数:



我想在YAML header 中设置df_print选项:

output:
  pdf_document:
    df_print: pander

但是,在RStudio中使用“编织”按钮时,它会出错,并显示:
Error: Invalid value for df_print (valid values are default, kable, tibble, paged
Execution halted

但是,当我直接调用render函数时:
render("example.Rmd", pdf_document(df_print = pander))

该文档呈现得很好,我得到了我想要的PDF文件。当我使用“编织”按钮时,RStudio是否以直接调用render时没有的方式将自身插入到编织过程中?为什么也不能在YAML header 中传递任意函数?

我也尝试传递pander::pander,但这没有帮助。

最佳答案

您可以使用!expr在YAML header 中强制对表达式求值:

output:
  pdf_document:
    df_print: !expr pander::pander

09-06 07:27