对于一个R标记文件,我想创建不同的可能输出pdf文档,其中输出文件名应该在文档中定义.有没有办法说服markdown以这种方式操纵输出文件名?理想情况下,我希望通过r块传递文件名.

推荐答案

通过使用未记录的knit钩子重新定义按钮的功能(默认函数称为rmarkdown::render),可以保持使用RStudio Knit按钮的简单性和YAML标题的可复制性.render函数的output_file参数指定文件名,因此通过设置它,可以覆盖使用与输入文件名相同前缀的标准行为.

e、 g.始终输出名为myfile.pdf的文件

knit: (function(inputFile, encoding) { rmarkdown::render(inputFile, encoding = encoding, output_file = file.path(dirname(inputFile), 'myfile.pdf')) })

该函数可以是匿名的单行程序,也可以从包中导入,如hereslidify所示.

您可以设置自己的YAML头(我不知道是否通常建议这样做),在rmarkdown::metadata$newheader以下可访问,但据我所知,它们似乎在这类函数中不可用.

从chunk作为文件名传入...如果你指的是YAML头下面的代码块,根据我的经验,我认为这是不可能的(?).标题可以包含内联的R命令(单反勾号,以r开头),但似乎不适用于这个钩子函数.

Related:

R相关问答推荐

更改输入值时不要清除(用户输入的)react 变量的值

当新列名作为字符向量给出时,在“data.table”中对数据进行分组的好方法

返回 R 中的第 90 个百分位值

使用mutate_all和cross时如何在case_when中添加列名?

停止更新*输入无效react

R:手动将特定行和列除以数据框中的数字

如何使用 cross 和 .names 参数将此基本 R 代码转换为 dplyr

如何让我的数据正确呈现?

R pivot_longer 带有存根名称和最后一个下划线

根据 dplyr 中的开始和停止日期生成新变量

如何创建一个值而不是一个列表

查找 R 中两个时间戳之间的重叠以分配班次

计算R中几个分类变量的频率

每天汇总计算 R 中的不同 ID

如何在带有 apply 或 map 的列表上使用 case_when()

跨列滚动粘贴字符串

在 dplyr 中使用 mutate 和 case_when 将新值插入数据框中

如何从矩数组表中调用名称中包含特定字符串的矩阵?

用它的序号替换向量中的所有元素

创建给定长度的所有多索引