|
|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>
) x- i3 @6 W; b; @$ {+ z/ }/ f<div id="fc">) \" X; \9 A+ L1 e, t
<p><center> </center></p>
3 i3 _4 \ h6 j" o7 U<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>( [' {. p- x6 N
<div class="suo-content"><div style="text-align: right;">
. f+ \/ T" E O4 a <div class="xControl"><i class="fa fa-caret-right"></i>5 d1 r1 j Z3 R* W3 `4 T
<span class="xTitle"></span> % k/ ]$ _* r0 H5 ~# z
相关讨论
- Q% ~- u; t0 v" h1 i <div style="clear: both;"></div>. x4 k- p F( J* S# ]
</div>
! B Z$ T! R: }" p( P: e <div class="xContent" style="display: none;"><p></p>% `" J# m' t2 y9 e; N, U! p
<ul>
( m r) v8 V7 [4 r4 }0 E<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>1 z: Q2 `4 P% ~
</li>1 N8 a# O8 ?( b7 Y! d+ }
<li>! i5 B2 e, w) X' o
另见:github.com/ropenscilabs/ezknitr</li>
; Q1 {% o+ C5 d0 e% w, x* L5 K/ O</ul>
1 w0 P A. n$ n( t<p></p></div>
( o7 @# [( D @+ c- T6 n i </div><p></p></div>
( e. A# J) W* @- j1 ` j& n! s<hr>& o$ K/ r7 K/ ]# j4 K" s
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p># c( X% z. F; Q. ?( F( ^
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>5 \' w5 ^( |2 p4 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>, P& T% \5 Q2 ?
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>% v! q6 N1 c% Q+ x. s6 N
<div class="suo-content"><div style="text-align: right;">1 Y& D5 U* Y8 O8 k4 U
<div class="xControl"><i class="fa fa-caret-right"></i>2 X( {" V/ w. B$ @+ Y
<span class="xTitle"></span>
) B; x" z! c# s" {2 t 相关讨论
( j+ ~ z5 y, F9 f) h j$ ^6 B2 v <div style="clear: both;"></div>$ h/ ]& P; U* U, L# T; I: r) J) r4 P
</div>
9 t; Q& r F1 c0 k3 R R <div class="xContent" style="display: none;"><p></p>
( D7 {6 d3 j) y* o<ul>
* R2 V1 J' X1 D; y8 w) C3 u<li> D/ [: h$ N# {/ ^! s" \3 z: j0 I
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
$ a5 P% s- [' f</li>
, J& n6 s& B1 p; B/ A% ~% q- v/ x<li>
S2 D2 C: D- Q1 |@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。# k4 ]$ |. |2 H. |1 F3 T4 M7 I+ l
</li># C t) o% C9 e
<li>0 P: {" n* d% {9 v) i" C7 f
这对我有用,它不会改变工作目录。谢谢。
# z2 ~2 [9 d7 Y" W7 \</li>0 L. n. j$ j% V! e' `# L
<li>& q# ]+ n; X( [% }# ~& q
是的,这很完美。非常感谢!
/ A2 B* v1 z2 ~# O! V</li>
5 N/ [* T/ {" x% |6 d& [<li>
5 [5 W8 [ O+ E@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>% E) o( o9 i0 R$ x# Z
</ul># _! N) ~+ R1 m) w2 a
<p></p></div>
7 \; L; i) h/ c- m0 J; G# I) l% x </div><p></p></div>/ q% H( B2 [: N8 b# Y. n0 O
<hr> A$ U; _- G' e5 |
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
9 A' t) u8 s/ D! X<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
2 |) M" o' Y2 o; B<p><center> </center></p>9 y( u# @2 K( |8 z
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>5 Z" L( f2 r2 P+ M. ^. p
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
5 U/ r. b+ }& g7 \<div class="suo-content"><div style="text-align: right;">
; W' L; p- H8 a, T8 H. V( p <div class="xControl"><i class="fa fa-caret-right"></i>7 w8 a* }3 x9 s; q
<span class="xTitle"></span> 5 s/ ^( e. {; j' f' A9 k) Z0 @
相关讨论+ t: V3 y* @4 V# H0 n w$ l
<div style="clear: both;"></div>
8 n: l8 R6 l4 {. { </div>
1 ?5 B5 X9 Q1 c* q( _# n( R2 P( M <div class="xContent" style="display: none;"><p></p>
( m) S% |5 ]. G' D<ul> ]5 Y0 l$ d& `0 Z
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.( w P0 \& [8 @3 m7 B4 Q4 r7 Y* R
</li>
; v t! S9 i* }# r$ {- n! b- B<li>
- K0 t) D% u0 R2 |) _- h链接现在失效了。
% R) `3 S g6 I9 C: F" A6 f</li>
6 F( I' @' P! P# J; M$ J: i<li>7 D0 G$ Z6 P6 {
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
5 G8 B, s/ X, a; G* V! @</li>
9 z5 B' O& x- D1 }* Q& b</ul>
* D8 ^& ]3 A3 _<p></p></div>
3 r4 m* i. ]* ]2 {$ f+ \ </div><p></p></div>
& a+ k9 E( g: g4 o<hr></div> |
|