|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>! m* w9 b$ P4 N2 _/ [$ s+ h) ]2 U
<div id="fc">
, ^' J% O5 ?# G+ j<p><center> </center></p>, `4 V) r( ]9 ~; z0 Q+ s$ Y
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>$ j/ o: `& T3 e# x* P% X9 n0 e0 X! ^
<div class="suo-content"><div style="text-align: right;">+ u4 O" v3 e3 f" A6 F/ u
<div class="xControl"><i class="fa fa-caret-right"></i>
3 s# m! f% m! V+ b <span class="xTitle"></span> - X! d' b/ P ]* a
相关讨论: _2 W$ t$ B& f8 s! | f" c& l
<div style="clear: both;"></div>) ?/ _! y! C8 c% O8 D
</div>
5 q: P* D2 J! D <div class="xContent" style="display: none;"><p></p>8 ^$ c9 T0 Z: l: \$ d9 @
<ul>
, P5 ?9 s4 W9 J- ^, N$ }<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>
- x) a4 d! F ]6 m</li># z$ I% P( H) U5 ^
<li>( q6 c$ d; a9 T( e: T1 x
另见:github.com/ropenscilabs/ezknitr</li>
: K3 v9 q0 g! A; O: V$ |3 W, e) w</ul>. n& M. p$ [) S8 L3 ~+ V j: W
<p></p></div>
7 j7 S* ]7 k8 \! U, d) r: ?6 L </div><p></p></div>! T- w$ r0 e' X& R
<hr> [5 w6 T( h4 q0 X% E
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
/ A/ w& W3 u! \% p<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
! ~' i5 v A8 Z+ V8 R<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>
1 u" ]. x: Z% T0 G! s( m, n rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
$ n, g% X- C, A$ q<div class="suo-content"><div style="text-align: right;">
5 b2 p* p5 i4 \& q( j <div class="xControl"><i class="fa fa-caret-right"></i>
( `6 a+ ~/ M R <span class="xTitle"></span>
8 Z4 {! Z/ E2 y% r z( W0 C/ `- b 相关讨论
, |* u# {4 Y u! c/ V4 W# N <div style="clear: both;"></div>
# Q5 N/ |; i( b3 v# p- U; m </div>7 S+ S$ |7 @. g6 d6 p
<div class="xContent" style="display: none;"><p></p>4 R7 W% }# a- _5 L! }/ l4 F- a2 n
<ul>
, }* D* G& L; h2 y# U$ S<li>
/ J0 a- k& h0 f! \* H. f+ B这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
" [* _9 g; i2 t3 b1 o* F7 K* g8 U</li>
! N. y+ z, z& _" H<li>
' I9 Z8 X' G4 G/ v9 }0 g1 R& R# _$ g@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
" \; h: b3 `! a, i0 \8 `- z* T1 ~8 k</li>
& v9 o$ {3 ^* }' N<li>
5 O5 W5 F5 Y9 R+ Z这对我有用,它不会改变工作目录。谢谢。
+ {+ w* p, r: h7 m" a6 M1 g) U</li>
) g, d- E" k; s+ W<li>( `3 g& o; A+ Y9 ^9 S
是的,这很完美。非常感谢!2 w7 N: F7 Z+ y' ^
</li>9 K+ |3 r# E, x
<li>
; u. m9 P9 j) f3 I8 I@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
1 n' S: S# X2 v" Q% ?, d</ul>
& y7 O1 W5 [4 Q h' i2 f; y% _<p></p></div>7 D# ~ S9 l0 ~- _- Z6 G5 j
</div><p></p></div>
$ S- w( D# _0 A [8 e1 T7 S<hr>
/ ?' ^8 ?, ]! x D) J% Z3 o<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>3 M& ?6 x# n! f7 o& p6 t5 {2 E
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>8 `' Y3 R0 R3 U; ~+ m$ b
<p><center> </center></p>
' g+ X" o+ f3 W. m" F" p/ k8 O$ j<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>+ i M; k8 W" n2 m7 @! e" Q
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>+ D4 T1 b1 t1 h' ?* B2 M4 G0 {) C
<div class="suo-content"><div style="text-align: right;">; I% l' }# P7 t6 }; q: }
<div class="xControl"><i class="fa fa-caret-right"></i>
/ C; B, s- C& B) ~ <span class="xTitle"></span>
8 C. b# N3 L7 O# v$ z 相关讨论
+ S9 J. w- H5 O8 @. ]/ p, Q <div style="clear: both;"></div>
% a. {! f+ e3 F; @6 j6 s </div>
8 n; e; c, |7 M0 J, B Q Y6 D <div class="xContent" style="display: none;"><p></p>; |; J; M% {) k7 S; { O: c( B
<ul>
- M6 b. P, w6 E$ I% Y3 \% u- _<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.9 A* z3 W3 Q* e' | r
</li>
# c5 h, \; z# I<li>
+ L* U( S3 _/ }8 Q4 V. d/ j链接现在失效了。
( q6 T# R' ~' w. X+ Z2 N- \: p, a</li>- S" Z& {4 ]! w9 O& @' x
<li>- g! g& Y* t+ r N1 ^$ m) [* Y' g
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...3 y- P7 t) w( j9 g! |- F
</li># g5 ?0 t7 ?0 i
</ul>
+ ~8 y2 m9 C6 M5 j7 Q+ j) c* x<p></p></div>
. r9 H- `6 E1 e1 p' [ </div><p></p></div>* ~9 P. O5 c2 B
<hr></div> |
|