|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>8 T! n, L5 g) f3 V6 b% B
<div id="fc">
" |4 I- g; S) F<p><center> </center></p>
& s) r6 X9 t Z1 ~8 y; k<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>) z: p# K; l$ D+ j' h% R) B
<div class="suo-content"><div style="text-align: right;">$ |, ^2 Y) h7 \/ r! T
<div class="xControl"><i class="fa fa-caret-right"></i>- V5 J) n+ L. P, u. z7 h2 b
<span class="xTitle"></span>
' K3 ]* u, _) u' f1 v 相关讨论0 _! O- v) R7 c" Z; H
<div style="clear: both;"></div>
8 S9 Y7 @* F5 k! d </div>( N. |9 b- I# v4 X( s9 D5 U
<div class="xContent" style="display: none;"><p></p>
' C. H2 E) V6 U9 h/ i<ul>" l; _: }; Q" T* m7 g' _9 W' j
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>" ]0 R: G$ ~% w& k4 |5 ]1 n
</li>: `! [0 C8 q% s: c* K
<li>
& |2 S' C3 u0 F) W) t- Y7 x4 _另见:github.com/ropenscilabs/ezknitr</li>" x5 n9 c# O3 J$ D* o. v
</ul>
6 p2 e6 ^# Y+ A6 s<p></p></div>
4 c Y' |1 @% g </div><p></p></div>* E' y; N+ K/ `6 M
<hr>
# i0 @4 {. g! }9 H/ D<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
0 t& K. Y/ J- a4 F5 z: F<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>& S( c% P1 f# g4 j+ f
<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>2 I! ?9 R' L. Y7 J: i/ n/ I* ^; O
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>2 O, e6 }5 k5 r y, e, S
<div class="suo-content"><div style="text-align: right;">9 E8 P2 ^: O6 o/ c+ Y0 r
<div class="xControl"><i class="fa fa-caret-right"></i>
, _- B, A o* I3 K8 p <span class="xTitle"></span>
1 p2 d3 |+ l' T1 p' x. {. b2 Y: w/ k 相关讨论
2 h! C* ~& \1 x3 ^ <div style="clear: both;"></div>& O5 {2 v' f' @; ]
</div># Q" h* \. q+ E4 t+ ?% {5 l
<div class="xContent" style="display: none;"><p></p>& e1 [/ _& m) |- p$ ^
<ul>+ X0 A8 z' ]8 j! ^. z+ u" c7 [" R
<li>: ]9 B# f+ G& y4 Z/ S
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。+ o, P. p+ p6 @, r
</li>
; q7 u4 I( \. z. r8 ^<li>2 n- }5 L2 w( H
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
+ {8 p' ?* V! |# D- B; ?</li>" o1 V3 |: r( S2 `1 ^. R0 _
<li>
3 v; }4 K: \/ f' c' F; @这对我有用,它不会改变工作目录。谢谢。$ L- @$ ?* m' h+ o# y
</li>
- m1 O6 m* p; B<li>
; m0 N: ?% l3 g6 y1 O9 N是的,这很完美。非常感谢!
* f& L. {, O8 i) H9 D+ `</li>/ S' _" A6 @6 ~' |9 o' e! c( J9 J
<li>& C$ m6 n0 w* H! _3 u4 P6 k/ S
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
2 ?+ k/ N' r1 R, t9 O</ul>8 Q2 `9 ^ Q# n
<p></p></div>. y- c$ Z: Y- V D2 R" V5 o
</div><p></p></div>
3 ^7 z) I1 A/ p' U# ~. p<hr>3 M$ Q" S" B+ f2 J# a7 q
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
( p% k% L5 i0 {<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>( K, J7 C+ N! o0 I# F6 C8 P, v _
<p><center> </center></p>; Z5 ^7 q1 q+ b
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
1 z- _2 `: G% K1 g$ o<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p># P+ d z# H. S w
<div class="suo-content"><div style="text-align: right;">3 I9 B& H0 m w
<div class="xControl"><i class="fa fa-caret-right"></i>
% ]6 r% h/ ? N; X0 z0 _( x <span class="xTitle"></span>
, Y8 P7 A: g% Y2 u 相关讨论
9 d0 u3 F& c# g. d0 X) H <div style="clear: both;"></div>% }( M7 R' ^/ U* A# f
</div>
7 k+ h% S0 l9 ^ D <div class="xContent" style="display: none;"><p></p>
9 V# I1 r" L% P; E7 E0 _. J<ul>2 a3 J7 Y( [& p0 [: M. D; [' }
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
, V9 A% h: d" }+ g" L% o' G</li>
& g/ c; T0 `9 G0 E \<li>2 {3 J. m! k( t {& w0 g
链接现在失效了。
7 ?9 g$ W; R2 t! P2 l; ^ F5 c) Z ~</li>
) }" e6 a* O7 q$ L: h0 G3 ]<li>
+ K. r! l6 I* q8 x7 Z/ e9 L这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
7 d2 L2 h) |$ S, t3 N</li>+ d F& z# j8 x2 P1 q3 L# M2 r
</ul>
' U3 `) A1 q/ X- u# e' U. ]' \<p></p></div>4 U- w3 n+ C7 e8 I$ e3 b) ~
</div><p></p></div>
& b% q. p$ x) Z2 t: K" H( z e! D' N1 U$ R<hr></div> |
|