Rmarkdown将输出文件定向到目录中

drm*_*iod 14 r rstudio knitr r-markdown

我找到了一个非常好的技巧(链接)到knitr的功能,你可以将输出html保存到输出文件夹和不同的文件名下.

您必须前往标题的唯一内容如下:

title: "analysis"
author: "Me"
date: "`r format(Sys.time(), '%d %B, %Y, %H:%M')`"
knit: (function(inputFile, encoding) { 
      rmarkdown::render(inputFile,
                        encoding=encoding, 
                        output_file=file.path(dirname(inputFile), out_dir, 'analysis.html')) })
output:
  html_document:
    number_sections: yes
    toc: yes
Run Code Online (Sandbox Code Playgroud)

这在我的Mac上有时很好用,但有时候找到out_dir变量有问题......

我首先考虑先执行块,所以设置变量......但这并没有解决问题......

我也重新启动了R session,这没有帮助.

最后一步是关闭R,保存工作区,重新打开R并加载工作区后,它再次像魅力一样工作.

我找不到原帖,有人推荐这个技巧......

重复工作流程重现

打开新项目,在新文件夹中将其命名为test
ar markdown document
将标题更改为:

---
title: "Untitled"
author: "Me"
date: "`r format(Sys.time(), '%d %B, %Y, %H:%M')`"
knit: (function(inputFile, encoding) { 
      rmarkdown::render(inputFile,
                        encoding=encoding, 
                        output_file=file.path(dirname(inputFile), out_dir, 'analysis.html')) })
output:
  html_document:
    number_sections: yes
    toc: yes
---

```{r write quant output files}
out_dir <- 'test'
if(!file.exists(out_dir)) {
  dir.create(out_dir)
}
```
Run Code Online (Sandbox Code Playgroud)

将文档保存为test.Rmd
单击编织按钮(现在从按钮的选项中删除html)
这将失败!

关闭项目!
点击保存环境!

打开项目,然后单击编织!
一切正常.

执行rm(list = ls())之后一切都有效

Nic*_*icE 11

您可以尝试out_dirknit要渲染的函数中设置变量:

knit: (function(inputFile, encoding) { 
      out_dir <- 'test';
      rmarkdown::render(inputFile,
                        encoding=encoding, 
                        output_file=file.path(dirname(inputFile), out_dir, 'analysis.html')) })
Run Code Online (Sandbox Code Playgroud)

  • 我还将`if(!file.exists(out_dir)){dir.create(out_dir)}`部分直接包含在编织函数中.通过这种方式,它对我有用,而且它也很有意义:你在标题中有所有的针织物,可以用你的内容 - 它应该如何 (3认同)