|
|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>
5 D- i4 P5 c* [4 a6 y2 {<div id="fc">
5 p5 x r# ^+ h2 x' T5 P<p><center> </center></p>8 K0 ^: m' ]) m$ t% i' s
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
3 k( G9 S7 e$ Y# G<div class="suo-content"><div style="text-align: right;">( F0 ?- g( ]- j9 d' i3 \
<div class="xControl"><i class="fa fa-caret-right"></i>& v6 j) o6 u( u
<span class="xTitle"></span> 7 ?' \& x5 f1 L
相关讨论
. J$ {) q x( `- X& S+ h <div style="clear: both;"></div>% l- Y! j) s6 t3 e. V" s9 V ?
</div># Y& q( U: z& R% N( i o; M
<div class="xContent" style="display: none;"><p></p>
9 U0 x. u5 \2 t: n<ul>" [7 |# C, l6 Q4 S; s" c9 T
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>
; y; n2 }- `% V" ^* k- ?</li>
* N! s5 d7 @- J<li>
5 L) W0 q* N% c! L& ?) r另见:github.com/ropenscilabs/ezknitr</li>& z$ O9 _! c7 }3 ~/ I7 f. ~
</ul>' n$ F$ n" a* j! b2 ~5 K
<p></p></div>
! S- l& e8 Q$ N, c& G: s </div><p></p></div>1 p! D k1 B( m) P, K4 |
<hr>
@% p7 J& p8 m6 D: P( ?<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
* q' Y6 g% {$ A3 D s: I; E: ~<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
3 @, t* | x0 b; i<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>
, F% i4 L! u% i! k# ]7 Z$ f rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div># O c/ y! {9 q: v! D. `
<div class="suo-content"><div style="text-align: right;">
$ ]& D: H$ l- {' x <div class="xControl"><i class="fa fa-caret-right"></i>+ ^+ ]7 B2 d$ ~8 {3 }
<span class="xTitle"></span>
, M' X, t1 a. a% R# t" z/ d 相关讨论5 A% z$ [9 h5 W1 V
<div style="clear: both;"></div>$ L I1 k6 F* A; `
</div>
% |1 @. f9 ]7 C" g" G1 Z; D( ? <div class="xContent" style="display: none;"><p></p>
+ e2 j9 {4 v* G- t0 T$ ^<ul>
; Q) L% y# L. N9 M& c<li>
9 F) X& Q. Q0 l4 H# @这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。8 k4 P2 X( K8 E
</li>5 S7 z5 _! E/ c( v- n9 |
<li>
/ g: q" U9 \! v5 }. U2 F, X@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
. ~& `7 m: H8 v$ D9 J. H( s</li>
: u7 z% i3 V. P1 }& _' |8 Y5 N' k& K<li>
7 ]$ Z! J; k. _4 w8 n" f这对我有用,它不会改变工作目录。谢谢。
) Y& y, y' E* v" L7 l" P6 A4 W1 g% g</li>
- P& ~3 u* J4 N. U$ Z<li>
- j( q" ?% a% t8 c是的,这很完美。非常感谢!
7 R4 o m. H% Y5 C4 w</li>
' m+ B: L( k: M" ?" W<li>
0 ~: Y% R" @7 L# k+ [1 @8 X0 q@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
+ f" C3 u( g, v. K9 ~7 m+ ^: f: T</ul>6 M8 ?4 @+ w4 }' `9 T8 [; K* Z
<p></p></div>
5 l- C) Q# w5 ~6 j( P0 B7 e </div><p></p></div>! _! a. X( o& ~
<hr>
% ?; K1 Q2 v6 w0 Y<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
5 u% }2 W3 e2 k+ `) H<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>8 m S; X# Q3 t$ ^
<p><center> </center></p>2 L0 S8 m. N3 K! S
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
/ O0 t$ T* }- ^# Y8 G<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
5 L* t' T% A$ Z5 ^. _<div class="suo-content"><div style="text-align: right;">' E) ~0 _8 r* T# K
<div class="xControl"><i class="fa fa-caret-right"></i>. {) B% O/ J6 j5 e0 o' i
<span class="xTitle"></span>
6 a) f" D7 q) I1 u0 `7 U 相关讨论
/ n! x$ R% H9 a- j <div style="clear: both;"></div>
, f7 D9 f* g4 W+ ]. b: `4 [+ f </div>* o2 o1 u# `8 j* p/ {" @9 m6 S* s
<div class="xContent" style="display: none;"><p></p>
8 l) F5 ?- H1 p; D) {<ul>
% E! U7 `# g7 J; V+ V% H<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
; L# M# x4 U& Q. r- t, N</li>
0 V! w: t: _+ Q<li>5 H- v4 N5 J6 M
链接现在失效了。4 v9 N. \, ^4 M/ [% c
</li>
+ ^# U( ?! n2 g<li>7 l8 }: A& x( W* w) p
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...0 k8 T# R4 k2 w. s$ n1 q9 L
</li>
/ e* P/ O/ j- q</ul>
* g2 {+ l: q' z& ]4 h<p></p></div>' W( V7 K( F! \! @
</div><p></p></div>7 a% A/ `8 F- Y0 R
<hr></div> |
|