R标记-变量输出名称
对于一个R标记文件,我想创建不同的可能输出pdf文档,其中输出文件名应该在文档中定义。有没有办法说服markdown以这种方式操纵输出文件名?理想情况下,我希望通过一个r块传递文件名。这几乎就是我所做的:R标记-变量输出名称,r,markdown,knitr,r-markdown,R,Markdown,Knitr,R Markdown,对于一个R标记文件,我想创建不同的可能输出pdf文档,其中输出文件名应该在文档中定义。有没有办法说服markdown以这种方式操纵输出文件名?理想情况下,我希望通过一个r块传递文件名。这几乎就是我所做的: rmarkdown::render('my_markdown_report.Rmd', output_file = paste('report.', Sys.Date(), '.p
rmarkdown::render('my_markdown_report.Rmd',
output_file = paste('report.', Sys.Date(),
'.pdf', sep=''))
我有三个脚本——一个是提取数据并进行处理,另一个是为报表创建图表和表格。第三个是基于标记文件创建报告。上面看到的代码是第三个脚本的一部分通过使用未记录的
Knit
钩子重新定义按钮的功能(默认函数称为rmarkdown::render
),您可以保持使用RStudioKnit
按钮的简单性和YAML标题的再现性。渲染函数的output\u file
参数指定文件名,因此通过设置它,可以覆盖使用与输入文件名相同前缀的标准行为
e、 g.始终输出名为myfile.pdf的文件
该函数可以是匿名单行程序,也可以从包中导入,如中所示
您可以设置自己的YAML头(我不知道是否通常建议这样做),可以在rmarkdown::metadata$newheader
下访问,但据我所知,它们似乎在这类函数中不可用
至于从R块传入文件名。。。如果您指的是YAML头下面的代码块,根据我的经验,我认为这是不可能的(?)。标题可以包含内联的R命令(以R
开头的单个反勾号括起来),但似乎不适用于此钩子函数
相关的:
- Rmarkdown GitHub回购发行-
- 我写了一篇博文来回答这个问题[无效链接,截至20210216年出售的域名]/对应
---
参数:
副标题:
输入:文本
标签:子标题
值:“我的子标题和文件名”
标题:“参数化的标题和输出文件”
副标题:“r参数$sub_标题”
输出:
pdf\U文件:
保持沉默:错
针织:(
函数(输入文件,编码){
pSubTitle您可以发布您的命令吗?您想“动态”命名文件吗?paste0(“文件”,x,.pdf”)?
x可能是日期或数据集的名称到目前为止,我使用的是RStudio,执行knit命令时没有实际查看更多细节。但我应该仔细查看ilyas的答案,听起来更清晰。到目前为止,我只使用RStudios knit命令编译一些标记文件。如果我理解正确,您可以使用R命令创建实际的标记文件,甚至使用R命令引导标记的编织?到目前为止,我还不知道这种方法,但我会仔细观察。到目前为止,我还在准备数据并在第一个脚本中处理它,但在第二步,我已经手动创建了标记文件,例如,放置各种数据是的。标记文件本身是一个单独的脚本,它读取数据并将图表和表格放在一起。但是,它是从外部脚本调用的-您也可以从Rstudio启动/执行它,并将创建同名文件。但是,我从单独的脚本调用它,在rmarkdown创建pdf后,生成的文件是cop在rmarkdown::metadata$title@yihuixie中,我可以通过这种方式将params$whatever传递到输出文件名中吗?我的标记使用params$data来提取相关的数据文件,但它看起来在一行代码中不起作用--params$data not found
。我可以通过rmarkdown::render(params=list(data=“Oct2017data”),output_file=“Oct2017\u analysis.html”)
,但显然我只想键入一次。@louis maddox“至于从R块传入文件名……如果您指的是YAML头下面的代码块,根据我的经验,我认为这是不可能的(?)。”还是这样吗?非常感谢!
knit: (function(inputFile, encoding) { rmarkdown::render(inputFile, encoding = encoding, output_file = file.path(dirname(inputFile), 'myfile.pdf')) })
---
params:
sub_title:
input: text
label: Sub Title
value: 'my_Sub_Title_and_File_Name'
title : "Parameterized_Title_and_output_file"
subtitle : "`r params$sub_title`"
output:
pdf_document:
keep_tex: false
knit: (
function(inputFile, encoding) {
pSubTitle <- 'This Works!'
rmarkdown::render(
input = inputFile,
encoding = encoding,
params = list(sub_title = pSubTitle),
output_file = pSubTitle) })
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
This is an R Markdown document. ....