|
|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>0 i5 e; O" K0 F
<div id="fc">8 O+ W6 _. L% N3 Z+ K3 q
<p><center> </center></p>* J m; B* f ?" L& ~0 q, P% }
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
- P' S' B) N' a. N, A/ n<div class="suo-content"><div style="text-align: right;">/ e% Z& @ ]3 R0 w- y
<div class="xControl"><i class="fa fa-caret-right"></i>0 P! E' |$ `& k+ q7 i
<span class="xTitle"></span>
9 v3 H6 [6 H0 u2 G 相关讨论
+ E( S) U/ ~" }4 o <div style="clear: both;"></div>
* Y! Q6 \' N( Q% _5 B) T </div>- o* \/ \; y$ R$ N% R3 j- g
<div class="xContent" style="display: none;"><p></p>& e1 R$ B) [/ a2 Q" ]
<ul>! w9 z' D* g' n6 T
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>
L5 y5 I ~: @9 f, [0 H</li>2 `1 L0 i- P; C h& v7 B
<li>
' j# T- p5 c Z' d" f) `4 F另见:github.com/ropenscilabs/ezknitr</li>
9 E( w- E' ?0 v; ^3 w</ul>
5 C" Z6 j" T1 K y0 Z g: q<p></p></div>
" N# [* _7 O3 Q0 r3 e$ N </div><p></p></div>5 d. j3 O$ c2 L5 e7 z! `
<hr>, B% I$ X/ [8 k5 m' O
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
- }- G1 V. w# P<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
- M; p/ s4 g6 g$ W<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 O. S; R1 V- J) @ rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>0 d% ^" y/ G3 V
<div class="suo-content"><div style="text-align: right;">9 I( O' H: D% y8 w) m8 X1 L4 z
<div class="xControl"><i class="fa fa-caret-right"></i># E4 D" _: n. Y4 ^* R
<span class="xTitle"></span>
% R' c# e& Q/ U2 d7 h5 ]/ | 相关讨论
$ ^. f! V* [- A+ `+ A J9 d) D <div style="clear: both;"></div>0 z# d! a6 C9 V4 @1 g" e; B* I& z& h
</div>3 j, y. W4 }9 `
<div class="xContent" style="display: none;"><p></p>
$ ~. U) q& A9 Q Y3 ?5 u<ul>
H) {1 ?! v, R; M/ _% K4 V. n<li>
4 F4 V- e/ l, }% q这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
4 \/ k1 q: _( \1 I* {</li>& B3 D- A; E! @
<li>5 X1 \' d; D9 `& L8 P. c3 n7 E& F# a
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
|* ^7 R; U# e3 K: i</li>5 l% Z5 g8 j6 o3 }9 ], |$ n R, B
<li>) p7 f; ^' Q* ~3 i7 w5 ]: _
这对我有用,它不会改变工作目录。谢谢。
% ]/ h# a* j, c) }- D</li>
: d8 X% P; D Z+ T<li>
& A6 q* P8 x( k是的,这很完美。非常感谢!" B6 s( q. H1 |3 B0 u; M
</li>
# Q6 Z# C) T# ^* E% U- Y1 Y<li>6 Q }' i. ]/ b v1 O
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>$ ?1 z! i# O1 s/ n& l) C' D+ P
</ul>& L2 f: b7 h+ `& e
<p></p></div>3 |: x) R7 d% L+ q$ N/ J
</div><p></p></div>: E% b7 T2 |: `* s
<hr>$ Z( j( W+ [3 x; U1 [4 d% s
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
1 X7 @, J- S0 ~5 F, O<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
3 B: U3 V9 t' g" a, h+ l& H<p><center> </center></p>
4 V- v. ?* Q! r* v* D0 Q<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
4 ?# J" Y" f; _0 h<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
4 I; n6 J8 _' O ]: b7 q; s<div class="suo-content"><div style="text-align: right;">' s1 J( D$ l! q4 R) Z" I
<div class="xControl"><i class="fa fa-caret-right"></i>/ C9 B5 i% x& X2 B0 s* o
<span class="xTitle"></span>
7 `9 W6 V7 v0 J) t+ u 相关讨论
; g2 X; P3 H `) K [* {7 n' t <div style="clear: both;"></div>
* g& U( c; U; ~/ Y, ^+ m </div>! T6 Z6 z; x7 X$ S/ h7 p
<div class="xContent" style="display: none;"><p></p>* G" C T" @/ m5 e0 W( c
<ul>+ \% V# `1 P$ c
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.$ @ P% y# X/ }8 ]: n8 @% Y
</li>
. c: ]9 S* P8 U: A<li>8 m# _7 o0 `9 c; | D/ \3 h+ F8 k
链接现在失效了。
F0 \5 G- m" d$ G% d</li>
7 t5 z1 s4 R6 x, u7 N<li>
/ r& @/ ]/ h* g3 a' @3 k这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...! }7 p' P6 q# @
</li>& T' a3 F1 p0 A$ L
</ul>
/ F( t7 T) x! ^8 `* n( n<p></p></div>
" s# Q; c) [, v9 g9 }) k; p3 F </div><p></p></div>* T4 ^. s0 Y- n6 {) P- c+ _
<hr></div> |
|