捕获';输出#u格式';从rmarkdown::作为变量渲染
我正在使用RStudio和捕获';输出#u格式';从rmarkdown::作为变量渲染,r,knitr,r-markdown,R,Knitr,R Markdown,我正在使用RStudio和knitr等工具制作可复制的报告,并希望能为Word文档和PDF提供最好的版本-我更喜欢使用LaTeX,但最终用户倾向于选择可编辑Word文档的灵活性 我写了一个ifelse语句,本质上说“如果这是rendered作为word文档,在markdown中创建一个kable表,否则在LaTeX中创建kable表,然后进行操作以使表看起来更好(阴影行等)” 我不明白rmarkdown::rendering过程如何捕获output\u格式,但是否有方法将其存储为变量并在ifel
knitr
等工具制作可复制的报告,并希望能为Word文档和PDF提供最好的版本-我更喜欢使用LaTeX,但最终用户倾向于选择可编辑Word文档的灵活性
我写了一个ifelse
语句,本质上说“如果这是render
ed作为word文档,在markdown中创建一个kable
表,否则在LaTeX中创建kable
表,然后进行操作以使表看起来更好(阴影行等)”
我不明白rmarkdown::render
ing过程如何捕获output\u格式
,但是否有方法将其存储为变量并在ifelse
语句中使用
最简单的例子是将此代码保存为test.Rmd
:
format <- output_format #(somehow captured as a variable)
printTable <- function(data = df, format = format){
if (format %in% 'pdf_document') {
# create nice latex table
} else {
# create markdown table
}
}
报告的不同版本将包含正确的表。您可以通过
knitr::opts\u knit$get(“rmarkdown.pandoc.to”)
访问输出格式。这将返回目标输出格式的字符串。下面是一个例子:
---
title: "Untitled"
output: html_document
---
```{r}
library(knitr)
opts_knit$get("rmarkdown.pandoc.to")
```
对于html\u文档,返回“html”,对于word\u文档返回“docx”,对于pdf\u文档返回“latex”。非常有效-谢谢!
---
title: "Untitled"
output: html_document
---
```{r}
library(knitr)
opts_knit$get("rmarkdown.pandoc.to")
```