|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>( z6 d6 d. t( ^9 P4 R6 p
<div id="fc">/ @+ f* O. B7 H
<p><center> </center></p>
1 F5 F _& ]0 s: w+ F0 n: J8 E<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
' B6 x- X% ~; S( N( c3 b5 u0 ?7 |<div class="suo-content"><div style="text-align: right;">+ _" r8 _, o' f& D0 K- z
<div class="xControl"><i class="fa fa-caret-right"></i>. e& u* K+ Y, z. q4 @* [+ l* O
<span class="xTitle"></span> O1 H V/ a1 N
相关讨论+ b0 F9 z, W$ N
<div style="clear: both;"></div>
. l$ |5 N3 @1 U </div>
7 _, y4 o7 i1 D7 h: s1 ` <div class="xContent" style="display: none;"><p></p>% I& g/ e, n; t# W
<ul>
0 H$ U& X* B8 ]2 Y! s1 Z; x0 y<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>) Q8 P; v/ y% ], ?
</li>/ n) `8 B6 c* y: P
<li>
* v- z: z7 Y. H% ?8 z( ^另见:github.com/ropenscilabs/ezknitr</li>2 v0 O+ y" W3 ^# {7 {
</ul>. j; J: }- }0 g8 |" W# Y
<p></p></div>
( @1 M$ S' u0 j </div><p></p></div>' H6 m+ o' [5 R7 A
<hr>
6 f7 k% m+ u; o1 y$ v<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p> \3 Y% b( }/ O4 }! [
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
" K+ U$ z# E8 h' c# n<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>, }9 \- P) K1 `; |7 W% K# f
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
2 C( @, s3 O, V<div class="suo-content"><div style="text-align: right;">
0 s) w3 W1 D& f* H) f7 d% J9 ^/ w3 W2 n <div class="xControl"><i class="fa fa-caret-right"></i>
, R3 T1 p6 i9 a' _$ U$ H% l( ? <span class="xTitle"></span>
6 u6 r6 l, B( ?8 `0 ^2 D 相关讨论
n2 V: k0 x& j3 s0 m: E <div style="clear: both;"></div>& t- a \0 A5 J0 k' J. [
</div>; i$ Q( }. [) `% n. v; I7 r0 P
<div class="xContent" style="display: none;"><p></p>
2 v$ y- N: e: G. S2 t- C! w<ul>5 L8 _' d; p: u
<li>
$ E) n1 b8 {" G; N g/ J0 b这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。7 Q1 }: y5 Q% C. U! R
</li>
6 l; |7 o) j0 d/ u<li>3 v* v9 K- y: ?, u+ X
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
* [ \8 T, v4 p</li>
" S+ |, r% T% z8 Z9 B<li>
) ]8 U; y9 Y$ \ p: z这对我有用,它不会改变工作目录。谢谢。8 r5 @: z: L; d/ c0 m& S$ l# M/ k
</li>
6 h F1 T" p0 N- B<li>8 G: s$ N% h/ z8 g6 Z2 x
是的,这很完美。非常感谢!
$ W7 z/ |5 _ |5 }* ]</li>
( H/ V9 ^5 D5 ?( d! O$ V* W<li>5 c9 i& q5 u% p. M" E. E
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
) l) ?9 ^' L: X" D</ul>
9 X9 P# b, W; j. w' N8 I<p></p></div>
; ~* c# c. Z; ^& C7 t </div><p></p></div>& l u4 C* @: @+ o7 Q
<hr>/ h5 c" o* b$ }9 p
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
- f9 v' Q5 R& |4 m) f- ^<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>& I2 Z$ E1 y* O1 S- b! v3 Z) P
<p><center> </center></p>( R6 A/ N1 B- _( b
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>! Y3 t; J* B8 V: P4 x
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>1 c3 ^! I% U n, O
<div class="suo-content"><div style="text-align: right;">- ?' u. ^/ E1 Y9 e8 w% k
<div class="xControl"><i class="fa fa-caret-right"></i>
4 M8 ^# w/ t0 T7 a, k0 A <span class="xTitle"></span>
0 A5 u4 }" p6 ?2 p% l: [ 相关讨论
. e# Y4 s) W5 ?3 l* z7 Q5 B0 r) c <div style="clear: both;"></div>
0 ^8 R' \5 K1 ~( R! p </div>! n1 k! @* q7 N( v
<div class="xContent" style="display: none;"><p></p>
" g4 p" M: z: c6 A$ T<ul>. r& n! L+ H/ u! L
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
4 G% a! J- b- b) ^4 Y</li>: j) Y" c( o5 x# W
<li>
k, v2 d1 a5 M' }8 @/ R链接现在失效了。* Q( _( Z8 I7 K/ m' A
</li>0 T. Z& U; O+ v& e
<li>; F4 r! n a4 ^) P) f9 }. q- h
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...1 [+ \* e& Y* a8 y' b) R
</li>
( M; S% p3 i$ u) t</ul>
& C. `3 ]4 Q R* E<p></p></div>+ A/ e G8 X. [) t0 r( v/ K
</div><p></p></div>
/ ?' D3 U+ M1 D e: I! k ~<hr></div> |
|