|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>
+ P& L3 s# q2 j8 x& o6 g<div id="fc">
/ l$ J8 y' P5 I+ Y<p><center> </center></p>
) q5 u/ T$ W1 j' i! t<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
2 B9 l6 M5 p, Q9 |6 V+ Q<div class="suo-content"><div style="text-align: right;">
* w$ ^2 n3 |+ [1 T [6 |# u2 ? <div class="xControl"><i class="fa fa-caret-right"></i> X9 H! y! n* P4 p. e0 n# v) ]
<span class="xTitle"></span> ( g k& L3 m" ~! z y5 O) i
相关讨论$ ~" G6 P. l3 A' V9 P
<div style="clear: both;"></div>
2 c5 i) f! U) W& y) [: o3 [# E </div>
& t: Y y8 U* }! v; f+ f <div class="xContent" style="display: none;"><p></p>
+ r: s g7 |) U: C, c( _<ul>
. L- Q) j Z8 G" L7 g<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>! Q7 | ~$ ?' K8 x8 S' {4 u
</li># f; j: ?5 G! @( m/ r( |, F1 y
<li>& @. v! b/ B6 l( ?% t
另见:github.com/ropenscilabs/ezknitr</li>
9 {; d( \1 S7 O</ul>; [: {, R, f, Q3 @, |# B* l
<p></p></div>0 s k$ ~5 n# K8 @0 T: o
</div><p></p></div>
/ B v# B( \/ A, z( H<hr>
C/ z$ I0 s+ }" q<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>1 K3 C: f7 z: I2 j8 ~
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>3 e! ~4 O2 A8 P* g5 F, b
<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>
" u. Y9 Y V: L4 Q! K rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>/ [! w8 d6 f4 _/ w/ x; a
<div class="suo-content"><div style="text-align: right;">. O4 Z4 L# h3 {
<div class="xControl"><i class="fa fa-caret-right"></i>
3 b4 b5 s9 L4 ]: Q; v" r <span class="xTitle"></span> + ` y: G/ ~/ P; T8 `+ q8 d Z0 f
相关讨论
( f9 U% y( A# e* h <div style="clear: both;"></div>
/ O( a9 O1 n6 p. [ </div>1 W, u8 G8 [1 |6 O
<div class="xContent" style="display: none;"><p></p># {5 w2 l( ~7 G2 U
<ul>
$ b; k2 u4 C& \) ~8 S<li>5 ], a+ h, ]; Z5 J" \& S
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
9 A! L, ~( W" e</li>0 y6 }7 j3 h! q$ f7 }0 ?5 a7 D q
<li>
6 \' A2 |" k; X% i@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。$ m" F6 V, b4 B. W: j; ?
</li>
. i" H0 h( ?# H2 i3 i* ?; n<li>
1 o9 \5 C5 S. W" ~8 _! ^$ d/ \8 k这对我有用,它不会改变工作目录。谢谢。9 I/ n/ G) `3 e* O3 D4 @
</li>
/ `, \0 k ^7 k3 K# A x<li>: u! e/ q; z. X( X( q8 m
是的,这很完美。非常感谢!2 Z* u* @; H5 d" m' Q
</li>6 o8 }- [# A: N
<li> v b9 L, l2 n& b$ v! g/ [
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
; i4 B# f7 N# m, u( R</ul>) ` E$ s1 m T/ W3 W
<p></p></div>
: k5 C, [2 [ a+ T, k* e7 q </div><p></p></div>$ A5 `2 u9 Z0 }. l f! `+ I- n
<hr>/ w4 P6 ~" E* z- j3 e
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
# h' y- u! |$ t' O. p& f<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p> C3 N: _2 S: Q8 T+ @0 I
<p><center> </center></p>( C- q9 P( W k
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
7 `; V$ `7 `7 Z, k<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
; N3 u3 d. j, I2 E4 A: n; M/ Y<div class="suo-content"><div style="text-align: right;">
0 \: h7 M& u7 L; g$ }4 r- j; i <div class="xControl"><i class="fa fa-caret-right"></i>1 s( s0 L3 d* ~8 ]8 k, v
<span class="xTitle"></span>
, z: C: J: ?$ _* g 相关讨论) |1 w- E' {. T4 j7 r" G) q/ V/ H' s
<div style="clear: both;"></div>
) \* W# {, o/ X+ _$ X, R) o" g </div>
: ^/ Q, i6 M& P9 b7 p+ v* |+ S <div class="xContent" style="display: none;"><p></p># j0 A( X, P9 w+ q9 i
<ul>
; }. I) Y' K) d$ d# j<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.$ w6 a0 K, z- A# @2 g8 X3 h
</li>) F1 W- L& Z! [+ V
<li>5 o, t3 h9 Q- w# |7 E8 B9 C
链接现在失效了。: E: x9 D7 ?% Y" j4 j' S
</li>* N {3 A: |7 a" W5 o
<li>1 ?/ R- J: C6 N4 K" l6 }# d
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
0 x c7 n4 b7 m! I m</li>7 y: f8 J" ~. q
</ul>2 p- U1 w" c, J# Q! x' W2 N5 S
<p></p></div>
5 J4 O% n3 h& R0 j0 _' y0 v2 A </div><p></p></div>
3 [% T4 b7 q1 `3 D) q<hr></div> |
|