|
|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>
8 M2 u- v) n9 b0 [6 D6 M<div id="fc">. B/ U2 g [% a! v
<p><center> </center></p>
8 X0 K& [) v8 t8 {: L$ w<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
5 w6 g9 E0 M7 @+ V' [9 D! [<div class="suo-content"><div style="text-align: right;">6 H& Z1 d" A& O
<div class="xControl"><i class="fa fa-caret-right"></i>
- t7 x* X9 S- C& u0 ]6 m5 u7 Z% u <span class="xTitle"></span>
0 ?3 S9 S: e( O# C; d# M 相关讨论
' ]* E" _7 O5 Q. G, y# ` <div style="clear: both;"></div>2 U/ V8 Q; g& v, @0 q" {/ N
</div>- A- ^5 Y+ e/ T! r/ o ~
<div class="xContent" style="display: none;"><p></p># w B6 Z/ s; W) h# s+ \7 w; m* i8 X3 k
<ul>0 |6 ~' w R3 M+ S
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>8 z U! G, k! K5 D+ A
</li>7 @1 A& p$ W/ u4 q
<li>+ O" y# X& i$ [3 U6 ?' h
另见:github.com/ropenscilabs/ezknitr</li>
; ?% q4 @) Z3 k. K/ e) n</ul>; W( G7 Q# g& d
<p></p></div>5 b9 b: }- R+ d9 F8 A6 w$ p
</div><p></p></div>
; m( R% ]! T9 i, Q% ?% A/ Z<hr>
* m' f6 }4 W' x+ h) N8 k% W<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>: `2 p4 `# h2 _; ^5 Q' y7 i
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>% R; h5 {6 r. D |9 Z& u. q
<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>. W$ b+ r3 o }7 \' @6 i% D
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
3 ?* e) L, r- o2 J7 B' F8 d8 l6 k<div class="suo-content"><div style="text-align: right;">- L$ k! ^2 c- B* q
<div class="xControl"><i class="fa fa-caret-right"></i>( r) c- U* z! g4 b; I
<span class="xTitle"></span> ! J; O# j! G$ P. u
相关讨论' K s' p& S4 k0 w3 S; I$ a: [
<div style="clear: both;"></div>
7 G5 Z/ o- r) ~4 u: x0 o9 I; C* y </div>5 Q1 f5 ^/ G( d' L
<div class="xContent" style="display: none;"><p></p>3 O. I$ z1 i4 Y9 Q! Y$ F( R
<ul> f9 z! @. v# u5 W# a6 z' x: d9 _, q
<li>, R( W# V% e" J E
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
7 h0 L* s- K4 }8 |; {8 o9 ]4 d</li>" J& s+ u* Z# s0 v( m. r7 W
<li>
; }2 ~8 A5 Y! i" P3 t; e: W; \@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。; D" \% ~6 |) o/ x O
</li>
& g6 q/ { r5 ]) B4 r5 q<li>
, P. t7 M3 z7 N: K/ c+ B这对我有用,它不会改变工作目录。谢谢。7 ]8 U% [ a+ ^' I7 Y' k9 V
</li>
- c9 s& @5 y; @" ~9 J# z<li>+ ?8 b7 V0 ~6 n1 W; q6 ^+ V
是的,这很完美。非常感谢!
$ l1 `4 |8 C+ P0 E0 W- C! q</li># m# O$ h6 a# {8 C, e& @: H3 h
<li>
4 x4 f; S; ^6 _8 b# r4 B( h) E@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
7 X+ k3 e8 k- {! C! V) a! x</ul>
+ i! U: d! J* Y4 ^2 L% ?! t; }<p></p></div>, I2 m" w; Q2 W$ m( q
</div><p></p></div>
5 W2 w/ I& C$ p# e" w) N<hr>
5 _/ q/ p0 u' G4 i& t6 Q<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>( r2 Z. l' y6 q# X- L& N
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
p8 K7 H# G* p Z<p><center> </center></p>
5 z3 N1 Q" _6 c* K<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
) g w" L9 ^0 Y$ j<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>2 V% X! p4 ?& \. b& w4 E
<div class="suo-content"><div style="text-align: right;">. y4 m s" X% Y1 L6 K# ]
<div class="xControl"><i class="fa fa-caret-right"></i>' |* ?$ b7 b# L3 w& `
<span class="xTitle"></span>
) R4 X1 n# h# o% U. I N 相关讨论
. v5 k2 ^& v8 [8 p& ] [9 S* B; i <div style="clear: both;"></div>! a2 s) d. o, u4 o! t C
</div>
' r( b% S4 Y5 o <div class="xContent" style="display: none;"><p></p>
9 g* F& H. {0 V# x) L<ul>
( `$ Q+ g+ ]. U' q: i<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
6 X/ u: t0 F1 a% A$ W</li>
1 R" P9 S# @! _5 U4 I B<li>6 H4 s+ {) |4 S* b# R
链接现在失效了。3 r- ~0 M/ z5 ~' q
</li>
/ u( L% A& R% T# [<li>% ]# Q4 n8 H, D& s' V4 ]
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
( W* }0 G) A# V) Y" t# r; i</li>
, C1 Q4 ^9 E4 }</ul>
6 W' y' D" y3 c<p></p></div>
7 C) q! Q; {/ f! V </div><p></p></div>$ O% V! ~5 V7 \+ z" t# h2 Q! x6 K
<hr></div> |
|