|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>
. u. l T0 U1 I C8 w R4 \<div id="fc">8 o: n- M1 S7 B: Q n! K
<p><center> </center></p>
. |$ q d5 ~8 {$ u<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>, N) f3 v$ a+ G" R g; o
<div class="suo-content"><div style="text-align: right;">
, k g Q( ?7 ?) [ k" Y: c <div class="xControl"><i class="fa fa-caret-right"></i>
1 P( x& H @' X' w9 z! D. u <span class="xTitle"></span>
# c$ H k# C4 w3 g 相关讨论 @) N/ S o1 Y) b6 Q6 C
<div style="clear: both;"></div>( ^* j! }! f6 m% e7 T. V
</div>& x; t' A" Y' O8 w
<div class="xContent" style="display: none;"><p></p>
7 U3 y1 w% Y# w<ul>+ i! E# ^5 D5 k# L
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>: S5 i! W# \1 h& l4 a5 P0 p
</li>" M6 ]+ J u+ A" c$ y
<li>5 z1 x9 i7 z& j# P; I8 z1 H& D0 z' y
另见:github.com/ropenscilabs/ezknitr</li>4 |. v- ^. F0 { D3 i0 d
</ul>. p' p( U% `+ r8 j* ] S; o
<p></p></div>
8 f$ q5 u0 I8 v" `% E </div><p></p></div>! R: r3 F0 v+ m l& w5 l7 h# a9 A& u
<hr>4 g* c& F/ f& w" q/ y6 @
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>5 z. v9 y2 H; d3 c# b! h) n/ P
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
9 F8 C5 U- X# B/ Q/ I+ ]<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>. Q$ X3 s1 U' \+ L% W3 ?( s
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
: t& L; A b4 C: u) Y8 v2 A8 O1 E<div class="suo-content"><div style="text-align: right;">
# b, h E- c+ N& D! q <div class="xControl"><i class="fa fa-caret-right"></i>" I, b4 @- l* \
<span class="xTitle"></span> 1 p% d- Z: Y v9 r
相关讨论
- m4 ~" O+ T9 { <div style="clear: both;"></div> e7 q8 H7 w* k; F ]6 Y
</div>
# I$ P$ e: q5 e l! X$ R <div class="xContent" style="display: none;"><p></p>/ Z/ f" y2 a3 d/ {' O$ D
<ul>- {% E5 d0 n( D3 w ?
<li>7 Q! o/ A5 O( l8 h% Y) d
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。# r2 `) \' T# s5 }5 Q0 d6 A
</li>
+ d7 R& ~4 B4 c& z+ e<li>
# ]* ?' J* R1 G: O6 ?' ]! w. M@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
5 \6 D$ c# v9 a# o% m& r- t$ f2 d</li>
2 s7 v6 q7 X& c0 P0 w! Z" z<li>
: _% z6 w' y5 C: U. L( V这对我有用,它不会改变工作目录。谢谢。
# b1 o T9 m: e5 U* P3 S, X8 L% k3 {</li>
4 D! F$ h2 z6 E9 v, b<li>( K( n1 r2 V! A0 X7 d4 T6 i
是的,这很完美。非常感谢!
/ @) U' c) @5 i/ f6 A" r& i</li>
# o2 B" x# k1 F<li>& b) A, B. G9 \/ S
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>$ a6 |9 q( n& b& ]4 k; [6 F
</ul>
" Q$ Q. d2 y! ]/ o) Z" ~<p></p></div>& p$ N4 f3 ^9 g3 s) F
</div><p></p></div>
0 x( w; Y# i0 A# t9 F: i1 C9 C<hr>
+ ?* x1 n0 b0 g<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
! k" X* D0 G- y3 J' d$ M<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
" M; H. b! ^! [. {! F<p><center> </center></p>4 `/ Y1 g" Q8 f
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
% ~& h) g/ E# w<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>9 o6 t2 @. q- }
<div class="suo-content"><div style="text-align: right;">
- G# a6 Z: o2 }8 u: w* h <div class="xControl"><i class="fa fa-caret-right"></i>) n% {: T' l& h( K' q& Y0 [- N
<span class="xTitle"></span> : h) _- t' k1 a( \/ M2 i
相关讨论
5 m/ Q( l6 m2 P8 m <div style="clear: both;"></div>
`, V* d* B2 ]$ p V6 g% n </div>9 ?0 P5 m+ ~, O% _, |! t- j
<div class="xContent" style="display: none;"><p></p>
V( S# ^1 u9 I7 Z<ul>
! ^( t% `+ E, t" t2 |<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
" A5 @7 B0 L# i. v7 P5 i0 e</li>3 }# |) q9 T+ I# G0 t* G# r
<li>2 W, V' c4 F/ k! r
链接现在失效了。
. Q/ g) r5 @5 L* T& y</li>* q, Y4 t5 B- _3 u- b1 [5 J
<li>( I1 Y' i1 j3 x- Q
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/.... e- i" y6 r; j* o( u3 e+ _0 s
</li>- Q; m% p2 t: `
</ul>
: @3 ?3 |. K. K% n) L<p></p></div>
8 `; r$ ]( O4 P </div><p></p></div>
( `" o, x+ T3 A8 ^4 A8 }) `! ?$ H0 {<hr></div> |
|