|
|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>; E6 V9 i7 P9 o
<div id="fc">; y3 x9 R% F" W1 A5 ?3 Q# E
<p><center> </center></p>
# g! f- h k* o" E2 S- Q9 `<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>& z0 `3 S+ \; u& Z. c9 d
<div class="suo-content"><div style="text-align: right;">4 r% p1 A9 Y$ Q1 ^+ h
<div class="xControl"><i class="fa fa-caret-right"></i>
, U) z* u1 M$ T <span class="xTitle"></span>
# K$ P) l0 q% `( G 相关讨论
7 L9 r a( f" {0 Q. u <div style="clear: both;"></div>
* r$ V% O7 r% r8 v# U, i </div>
# Q S: d2 w8 F5 i+ E <div class="xContent" style="display: none;"><p></p>3 Z( |5 e6 b6 F' t: m; [
<ul>
" I: C- l4 I% r4 E9 [<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>
5 x* {0 e) N# o' e. t: `</li>) r# ^# j7 z# l* I/ \! Z1 v
<li>: a m. `# K4 Z$ A/ g, k
另见:github.com/ropenscilabs/ezknitr</li>; ^& K/ e _1 o# O
</ul>% k* P, }$ Y1 M# C3 P/ s* q
<p></p></div>
9 E/ {8 a/ M+ Q: b0 ~: H7 K+ C/ c </div><p></p></div>
" f" k+ A1 O# Z. w<hr>: j* [ ]+ }8 Y3 |. d
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>9 h0 S) h0 L1 c* q* |$ g$ B4 x0 ]" D
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>& O6 Y/ w% \: Z- i9 e) j
<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>7 S+ t. ~+ v, L) p8 }
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
+ E; M6 \( a8 k; i<div class="suo-content"><div style="text-align: right;">
7 Q! b6 h+ \" N: L4 c <div class="xControl"><i class="fa fa-caret-right"></i>
! z# i0 o+ c+ u8 b& @( m <span class="xTitle"></span> $ G2 r+ s$ \# j; Q3 }& Y
相关讨论' u1 ~* _$ P: q1 p2 b$ x/ d
<div style="clear: both;"></div>
* p# t- S: ]' J8 H8 d </div>: T) n& E% N4 T! Q% [
<div class="xContent" style="display: none;"><p></p># W! Z7 x3 S- b" e. Z5 I: D. ]" ?
<ul>
! ]9 @ q& e* r5 @ D<li>
" h; M5 J) O: B$ p* I这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。- m8 _% l& \; V m
</li>9 x9 _2 F- ]+ h W. s
<li>' D7 {0 B. R4 c5 }
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
0 U3 ?' t1 x, @# P2 m' e</li>
* L3 {, Q& v6 T k<li>
' M+ ?6 I7 U! c0 m2 K这对我有用,它不会改变工作目录。谢谢。" R2 H* b7 g2 r. U
</li>
; u* t' a7 S- |5 e6 j<li>. B: O" {) a( n- d2 Y
是的,这很完美。非常感谢!9 P, T7 m6 ?: y, P( \, k
</li>
- X* i6 \: l/ _7 X7 B<li>* E9 V2 R, U3 a7 O2 z0 q
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
9 h5 S" H& d6 j1 t% W% V) _</ul>" Z* [, T" }5 L. m
<p></p></div>/ f8 X3 ~5 [. R! \9 N& z9 F
</div><p></p></div>
* @7 u- S' C x, ^" I" q5 c<hr>
, U; j" N* U4 `1 [<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>, [* a m: n( E) h7 G7 ^
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>( T5 x' q( l: f( H, r E o
<p><center> </center></p>2 c% z8 S. a: r' g2 ]* G' d
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>0 q9 R# v& M7 O( y+ X3 Z# p% P
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
$ J% f; I# c$ E<div class="suo-content"><div style="text-align: right;">
# Y) F; E2 b# p0 `7 _2 s* g1 a <div class="xControl"><i class="fa fa-caret-right"></i>
) G# E% L* h, C C <span class="xTitle"></span>
# k3 q1 Z: n/ ?( a" l 相关讨论
9 {0 O' d: U, M& h0 b <div style="clear: both;"></div>
# p6 d& r- \$ N </div>! i1 [5 B9 K4 g- m5 Y/ v
<div class="xContent" style="display: none;"><p></p>3 K: H w$ J# b; k) o1 X) r
<ul>
' M v6 w: y4 G3 @<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.4 j3 z! ?( D8 ^! x! J3 ^7 `
</li># {: b/ Z4 w/ j% A3 x! C+ m
<li>' B) l1 e+ ~- D7 Y2 n
链接现在失效了。% P3 p( M, F% ^0 s: y
</li>" C# v5 p! E) ~9 I( E
<li>" a) Z" O6 _( |% L5 ~
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
8 `6 c5 A n- D- q</li>7 I; i1 W, z3 d$ N
</ul>
# P: i5 o3 H. S<p></p></div># a" T* D) K% m( F
</div><p></p></div>
8 k, X- y( Y& @, @8 ?9 E+ l<hr></div> |
|