Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
捕获';输出#u格式';从rmarkdown::作为变量渲染_R_Knitr_R Markdown - Fatal编程技术网

捕获';输出#u格式';从rmarkdown::作为变量渲染

捕获';输出#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

我正在使用RStudio和
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")
```