|
|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>
3 s# V% n" p7 V' t: w<div id="fc">7 h% i/ I- s* ^% P
<p><center> </center></p>
# h E# h( b& { t<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
. }" @/ U3 I% a! G, V% u<div class="suo-content"><div style="text-align: right;">9 _; q0 A' _, Q& y2 N% B [# ]* k
<div class="xControl"><i class="fa fa-caret-right"></i># X0 B) V; e/ `$ f
<span class="xTitle"></span> & z3 [5 Z3 [& h( H
相关讨论1 J" M. ^( ~9 T4 |, t; o3 } g
<div style="clear: both;"></div>
2 D0 m2 k' H# Q& O </div>7 Y5 i, A: P, u8 u
<div class="xContent" style="display: none;"><p></p>
' @0 c9 _& r2 t<ul>
5 {1 _/ j7 `/ @9 k7 B0 B4 M<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>: H6 [, A8 E6 P: a
</li>
7 Z! C$ m. f0 x% n9 |2 W; z6 ]6 x<li>% A+ l' u, n$ Q& P, w) ~
另见:github.com/ropenscilabs/ezknitr</li>
( s3 O' ]! ~2 R' Y</ul>
( x. z9 G# c8 r4 A4 `' ^& V0 O) U<p></p></div>0 l1 [" }1 P0 v& s- `& t) V
</div><p></p></div>( P( o% ?% V4 V$ W- N
<hr>- }# x4 R5 ]0 a% E4 h
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>3 X/ h! c) K D! j0 ?
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
/ s5 P- ~' x( 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>
8 u. P+ j' P a! U' ` rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
9 b( S" P1 Y! R6 ~( ?<div class="suo-content"><div style="text-align: right;">( i E8 e: N" [0 G0 j
<div class="xControl"><i class="fa fa-caret-right"></i>
d& B6 W! l* H <span class="xTitle"></span> 4 c/ |0 d7 ^! d9 ?/ m, C
相关讨论. L; Q: V/ ?7 ]- n, ^. E
<div style="clear: both;"></div>& ^( a. W- d- R$ w" ~
</div>
) q+ G- H. @: z2 ^0 `3 D <div class="xContent" style="display: none;"><p></p>
3 ^. j, c" I& b! j<ul>
4 Y" ^- v* m2 M4 s8 d3 C9 K<li>) p0 J9 `: S( v& o K
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。# B, r& f* Q" d4 V
</li>7 w3 n- O5 B7 c$ E! f4 J; W8 J! a Z( h
<li>
, j* z# Q8 G7 w. K5 t% U@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。0 M1 F u$ l6 p
</li>
% \. C5 G) ^/ a: z% M9 e, L# j; q<li>
- {; ]9 j0 ?) P2 E9 ^这对我有用,它不会改变工作目录。谢谢。
9 E2 o3 q4 ?% v7 x, P$ x</li>
- z- V1 c' h+ f9 |* a<li>
+ ?5 s' ?. z% F. S0 j' h9 i+ _5 \是的,这很完美。非常感谢!, s; J/ s( O9 k) `. V2 g3 N$ \
</li>7 F3 O0 K0 i! a. H
<li>+ y# e5 Z/ p! ]; y& h
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
" {# F! v, j1 d. _</ul>3 H g) x" i( h* t5 G
<p></p></div>6 ]( F6 [) o, n6 j% h/ g
</div><p></p></div>
5 d5 T; P- E" ?# u<hr>* E: R) G8 K' n. I0 p6 l- R F# b4 l
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>6 S. L+ v% B6 B* B/ L, ~5 T
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>8 a" f' W: r. |5 X
<p><center> </center></p>6 }' M2 z: m. e( t' v/ Y
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>2 O0 A! C/ W0 g3 r9 d/ k$ Y: n' `
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>" ~/ k; Q8 a; b
<div class="suo-content"><div style="text-align: right;">
& ~) a* e% z- `( d/ i <div class="xControl"><i class="fa fa-caret-right"></i>
5 r9 I; i. m# d4 \7 q <span class="xTitle"></span>
1 A* X3 T6 Q" ^9 x6 l% y 相关讨论
/ [. v1 m5 ]0 ]8 y* X$ O <div style="clear: both;"></div>5 u( I- W! l* b% J
</div>5 a7 H" `* v' N2 ~' Q
<div class="xContent" style="display: none;"><p></p>
7 @ G9 D2 T5 _) R. P) x. W9 k<ul>7 E. [6 U9 w$ P# x) J
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
: ^$ |' ~6 O* [0 O</li>; l5 s, |) ]. a1 e- W3 Q9 r
<li>
7 P* R/ R, J0 P% n链接现在失效了。6 n: j# |( f- ?/ k. h
</li>
9 G$ g R2 N }) f# W9 Z& p<li>
2 x* @1 P$ J% E这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
6 t; j& U' ], o( Y% N% h9 t</li>1 S' t3 L: p( [( _6 Y6 R
</ul>
% r# {; }0 I( u! p<p></p></div>
2 p7 F1 S6 V E' C4 j5 m O3 q </div><p></p></div>
' `$ b/ a: U' h$ i+ A! M d# `<hr></div> |
|