|
|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2># J' F' R( D3 F# X7 v
<div id="fc">
& h) U# |# o& K1 O' ]/ X2 `<p><center> </center></p>+ W6 I9 r& o1 K0 V5 z3 ^ q
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p> s4 D5 d( Y6 _
<div class="suo-content"><div style="text-align: right;">
: w$ m% X3 s' u. I5 ?# c+ @$ q <div class="xControl"><i class="fa fa-caret-right"></i>
" x0 w- b$ \4 t* G8 _# G <span class="xTitle"></span>
8 p( S* z& C) N0 O7 [ 相关讨论
2 G& p# S: i, R3 x! P+ ~2 J <div style="clear: both;"></div>
# O2 E9 @# s% o3 M7 g5 X) H& T </div>! F/ Z0 I5 V ?3 g$ F) R' U
<div class="xContent" style="display: none;"><p></p>
0 J/ D! B- x) M$ x<ul>$ b2 I! t$ p. H3 }' W/ \
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>: J1 x5 o2 v6 ^
</li>
: c! c" A- z2 ?<li>2 u0 [) j$ @! Y; O! J& U" g
另见:github.com/ropenscilabs/ezknitr</li>) I3 g" V- y! z' ]
</ul>
8 `; V8 I/ ^; J5 p/ m; @<p></p></div>
" C- C" c' @3 |* r. W </div><p></p></div>7 Z: i; r0 Y8 n4 n* x: {1 R
<hr>
) H. X; v! i7 w<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
* W5 c4 `9 U; T+ v( n<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>, o. y/ r: l$ r4 `8 f( O/ B! M
<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>
/ r% l+ |/ h6 h rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
0 }9 e# ~; [. V( |- Q$ B<div class="suo-content"><div style="text-align: right;">
: C3 Q9 ]% Q2 {6 V9 O8 l <div class="xControl"><i class="fa fa-caret-right"></i>
+ y; G e& X* u' L <span class="xTitle"></span> * k, ~8 H% j* |* y* ?/ _
相关讨论
6 a P& m! u$ `: B- l1 i& j1 B( `+ y$ ~ <div style="clear: both;"></div>
$ R* c+ r: M9 m- o$ o </div>
6 q+ e) x! C- N/ k9 U# X { <div class="xContent" style="display: none;"><p></p>) V; m; r& i; }; U' f1 S
<ul>% }5 s* w$ L) e' f2 H0 i2 _# n
<li>
/ C: u! }+ x+ y9 L* E9 U- W这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
4 C$ d# b, B6 P* y% V</li>+ N2 k) e* g+ Y6 r2 P& v4 Z
<li># E! z5 p4 w. s6 S# G5 w4 W& f: L
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。7 M" o. ^7 | @0 V- D2 x
</li>$ G7 e6 S: b0 U e6 R% E) W
<li>
' }( N, o8 Q$ u+ Q; K3 p这对我有用,它不会改变工作目录。谢谢。/ G' t* `* q9 M
</li>
4 o3 N' u/ l1 l( X; W5 ~<li>, O/ u% V6 K0 ]# F
是的,这很完美。非常感谢!
* G% p9 a: x' Z( a- a% U</li>
7 w8 X" `7 o' [; h9 p<li>$ i) F, r0 m% H+ A @, \
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>) ?" l \ i; W* d+ A3 A6 i. P
</ul>7 I; h; ]. t/ V3 I
<p></p></div>1 z& O& L. F# Y4 t3 b! z3 m3 k
</div><p></p></div>
* c7 _$ B- m2 U<hr>& U# Z, `8 o" L9 T; z3 X7 ?
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
3 s- u0 U+ W! ^$ b- m7 o9 D3 y0 O<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
* u' P% o$ x; x B<p><center> </center></p>
T! u% q; C' b<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
: ~, v, {$ t1 Y; K<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
; ?" t# W. _6 c: o4 o8 @+ W<div class="suo-content"><div style="text-align: right;">9 v$ y2 L% l: _( A* V* t
<div class="xControl"><i class="fa fa-caret-right"></i>9 ~- b# l: t/ r
<span class="xTitle"></span>
' b' e+ r; g1 f) f; Y# r r: ~+ { 相关讨论7 w' P- G1 l N. H7 Z" z) O. P
<div style="clear: both;"></div>
# K. R8 |% u( m </div>- d2 _+ s/ \/ S8 {( p# T
<div class="xContent" style="display: none;"><p></p>
: E( }1 b! R' I8 \1 P( S; k* C<ul>2 [* {7 j/ I& M& g! z- I
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.- Q! ^/ M2 U) z. G
</li>4 \+ f' M p9 H! A0 @
<li>0 e- G4 o4 @" g7 X: C2 L
链接现在失效了。( e- L2 M K4 j1 G" `. U
</li>
( f" J, ~6 {2 V) m% I& t5 ]<li>$ [, o& J# v# c4 R: `/ h5 ]
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
" s' l8 [" @& ^9 B& _</li>) U8 a( [! s5 P! p8 r
</ul>
8 p* e3 N5 u5 \3 u2 N! }<p></p></div>8 p; j$ L6 B# b2 |
</div><p></p></div>& b7 p7 u8 y( M
<hr></div> |
|