admin 发表于 2022-2-12 18:18:47

R:在 RStudio 中,我如何将 knitr 输出到不同的文件夹以避免弄乱我的驱动器? ...

<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>
<div id="fc">
<p><center> </center></p>
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
<div class="suo-content"><div style="text-align: right;">
                <div class="xControl"><i class="fa fa-caret-right"></i>
                        <span class="xTitle"></span>
                        相关讨论
                        <div style="clear: both;"></div>
                </div>
                <div class="xContent" style="display: none;"><p></p>
<ul>
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>
</li>
<li>
另见:github.com/ropenscilabs/ezknitr</li>
</ul>
<p></p></div>
        </div><p></p></div>
<hr>
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;width:100%;"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br>2<br></div></td><td><div class="text codecolorer">knit: (function(inputFile, encoding) {<br>
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
<div class="suo-content"><div style="text-align: right;">
                <div class="xControl"><i class="fa fa-caret-right"></i>
                        <span class="xTitle"></span>
                        相关讨论
                        <div style="clear: both;"></div>
                </div>
                <div class="xContent" style="display: none;"><p></p>
<ul>
<li>
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
</li>
<li>
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
</li>
<li>
这对我有用,它不会改变工作目录。谢谢。
</li>
<li>
是的,这很完美。非常感谢!
</li>
<li>
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
</ul>
<p></p></div>
        </div><p></p></div>
<hr>
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
<p><center> </center></p>
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
<div class="suo-content"><div style="text-align: right;">
                <div class="xControl"><i class="fa fa-caret-right"></i>
                        <span class="xTitle"></span>
                        相关讨论
                        <div style="clear: both;"></div>
                </div>
                <div class="xContent" style="display: none;"><p></p>
<ul>
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
</li>
<li>
链接现在失效了。
</li>
<li>
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
</li>
</ul>
<p></p></div>
        </div><p></p></div>
<hr></div>
页: [1]
查看完整版本: R:在 RStudio 中,我如何将 knitr 输出到不同的文件夹以避免弄乱我的驱动器? ...