|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>, X* |% F l3 y; v$ h, K4 ~+ M
<div id="fc">. x7 s3 g6 p7 O9 I0 V* K; H1 l7 }, F* u
<p><center> </center></p>
$ {( w7 Y4 p. R5 ?, @( T7 N, V<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>2 ^ r f3 J4 Q& F- @+ l* b
<div class="suo-content"><div style="text-align: right;">: e4 W% v8 S3 y! [- q) D
<div class="xControl"><i class="fa fa-caret-right"></i>
* N" G, o: T3 d <span class="xTitle"></span>
t8 l$ O0 O! a- l6 R 相关讨论. @( E7 ]$ T) M+ c
<div style="clear: both;"></div>
) m% O; Z- Q2 ? </div>7 C& W1 f" @* S3 w
<div class="xContent" style="display: none;"><p></p>
2 k7 t+ J/ I5 E- ~% e/ R<ul>; h p1 i* ~% S5 H& ~
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>* I" a6 A0 M7 z$ } g/ K
</li>; f; O; |! t" c Z/ n
<li>8 W5 I7 }5 y! Y! D5 X& s8 U- L
另见:github.com/ropenscilabs/ezknitr</li>
" |& A) \! ~6 I6 d# s1 ]6 u8 J</ul>$ ?0 V- y3 W. n8 U9 n8 _
<p></p></div>
( ~' S) f1 m! Y' z t! v </div><p></p></div>
8 u$ O4 D3 Y( f& N* W<hr>
3 e' D! u- j8 f8 r<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>. _0 J1 i% l! y9 o' P2 \" o
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
/ V" L5 N& V* {( _: d/ o. @<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>4 C3 |% r4 f) _+ F+ ~& G2 H3 c
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
4 |3 \) Q$ S( I( m, q<div class="suo-content"><div style="text-align: right;">0 q3 J7 c( g- V
<div class="xControl"><i class="fa fa-caret-right"></i>) e1 C( z$ j9 H7 T! x8 v
<span class="xTitle"></span> $ Z( T- G% ?/ C2 a6 N3 o9 ?* G. c
相关讨论$ ]6 j6 h9 x: y2 x* n4 j
<div style="clear: both;"></div>5 v9 h# Q; t7 c; G, h
</div>- K& o' ~) Y0 X, g2 Q, H8 M
<div class="xContent" style="display: none;"><p></p>
K% Z/ m& r- ?. W4 c- j<ul>* g$ M8 e9 U2 F
<li>' X9 v: j g3 m5 X( Y+ b
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
7 q' e5 e6 ?1 j) h</li>
) V4 V, Y& _. }; k<li>
3 A7 \! [9 W: n- N6 t! c+ c7 R& s@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。1 U' |: t; M" T h# `
</li>
+ P8 @9 ~ [& ]7 N; i$ W<li>. _2 O7 x2 R1 S# p
这对我有用,它不会改变工作目录。谢谢。
0 U6 A) q) R8 @3 A9 P</li>
, h6 [9 P7 c0 \+ D. @. H<li>& i; w2 X l' [, [
是的,这很完美。非常感谢!/ g# Q* b+ l; ~) ~! N3 y
</li>0 Y+ M, u* P2 b, N- ]1 _0 T
<li>
9 ], g; |5 P5 x: {% y& b# \@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
) t, N; S* f! T/ G/ Z; P</ul>
" E* U. X2 \* h- Z9 b<p></p></div>- X9 {# V, m$ Z& _
</div><p></p></div>2 O: z5 |) @2 C8 Q+ ?* k3 |3 S
<hr>8 O. u/ w, t$ ^2 L* p3 T
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
* Y, s. r# O: ]<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>0 b: d/ M1 R y" z7 v9 y
<p><center> </center></p>3 v# Q( e. H: U( `
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
: n# e; H; w+ e2 [# q<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
2 M0 V1 r5 k& D3 b& ~<div class="suo-content"><div style="text-align: right;">
+ H2 O4 N D- e5 u <div class="xControl"><i class="fa fa-caret-right"></i>
8 D: o/ V/ a8 E* Q <span class="xTitle"></span>
. @# [0 s6 H. R5 ?# ` 相关讨论
2 ^5 ?' n: I( N2 k <div style="clear: both;"></div>5 r4 t% C* M' [3 c6 S5 s+ T
</div>
5 f4 }- e3 ~2 G" J$ k1 [ <div class="xContent" style="display: none;"><p></p>
7 ?/ Y& Q/ Y' A; R0 r7 w( H }8 D<ul>9 ^+ l" y3 ?6 Z% D# b
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.2 q/ O/ Z( \1 [# _
</li>
& T" s4 l" v6 o, ?/ s6 U<li>
6 A: n) F4 m y' [* z- q Z链接现在失效了。
; u! N% T; d9 s: N# }6 M</li>
7 g$ X" m0 [! V5 u+ L, j R<li>* H4 d& u, I1 H2 b
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...& R. P- [1 |& _5 c9 O( O
</li>
$ Y7 e+ w6 G' C5 k% }$ G5 A</ul>4 O: E6 z, d) O6 E. Z) X' j7 q9 b
<p></p></div>
4 U k% O4 }3 j' R7 H0 _0 T </div><p></p></div>
" z0 |- Q+ ~( G: q<hr></div> |
|