|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>
3 |9 c- s2 }* U<div id="fc">
& |% M8 ]9 E4 M0 H- ?/ y<p><center> </center></p>
; }, b1 b, Q! D, G% u<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>, ?2 w5 G5 t4 x% N
<div class="suo-content"><div style="text-align: right;">) [9 j. P G8 m: p; ]3 a O) Y
<div class="xControl"><i class="fa fa-caret-right"></i>
7 J: Q: h$ [. V- Y( Z <span class="xTitle"></span> ' `8 u" B: U! Y( T" e: j9 Y9 U
相关讨论* |) \2 S w5 o. c4 Q
<div style="clear: both;"></div>5 L* ~% E8 r" s( R" f4 Q
</div>( t/ _% A7 I2 t$ b6 z* P
<div class="xContent" style="display: none;"><p></p>
4 k$ i4 f9 |* i- I<ul>/ i) z* t$ {$ N4 D
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>
7 q# J8 l1 B' H t1 Z$ ?2 c5 Z</li>
% V3 w$ W; r6 k5 n" G$ b S' ^ h<li>2 j6 |: }: Z4 b* i; w
另见:github.com/ropenscilabs/ezknitr</li>7 ~$ q( H( Q- L/ g
</ul>+ C( m! d& g1 t/ m7 A) E0 v( o9 g
<p></p></div>* w) M* T2 s' k5 s; A
</div><p></p></div>8 b" P5 E8 f$ w1 ~9 Y [* S, Q: _# J
<hr>* B& L2 Z3 M8 F& C4 R( w b
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
. l* |6 a. v: y% D+ l" _<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
; c6 Z" l0 d- v; ]% o6 S4 W n2 [<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>3 H0 ^8 N, k) l% g9 F# ^8 o/ E
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
& N# }8 U: f9 C* E3 K Q K, S/ \<div class="suo-content"><div style="text-align: right;">
+ e2 x9 G( ] r. G. Q/ u <div class="xControl"><i class="fa fa-caret-right"></i>
) Z4 z$ e& Y1 |. b <span class="xTitle"></span> % m% J3 G& z8 l2 T5 h
相关讨论
& c: c! F" |0 k/ X! K0 w E <div style="clear: both;"></div>0 n3 N, D7 t' X3 P# l2 M' A
</div>
" V0 I/ o! d+ v# D0 ]- Y <div class="xContent" style="display: none;"><p></p>
5 A4 b8 s) D1 ^$ w% ?<ul>9 W$ \2 B" S" s) x
<li>
6 c* y' f( f) k: d1 Q$ a这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
! J, T0 T4 v5 j: C7 F9 N% z3 g</li>( s7 K( Y4 L$ z; |: V! c7 ]
<li>
- b$ v5 ]1 Z: ? \, Z- { H' R@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
0 o, p4 b( m, @ }</li>
% Q1 Y8 g4 i! U2 Y5 s& ` C<li>( n( j' k5 V8 x/ q3 C' W
这对我有用,它不会改变工作目录。谢谢。
( G4 c, f1 F" g</li>
8 Y6 N. U6 Q& i- F; p- |<li>. X: \3 j2 F* a
是的,这很完美。非常感谢!
2 y. P' n& W) d" c</li>
1 j# @( T2 j b: I<li>
0 X; }" V# G& b@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>6 Q1 P C9 l2 A
</ul>- {: U1 {+ D: y. z& C4 _) u
<p></p></div>
+ V, b9 o( ^$ _3 S7 C% i </div><p></p></div>" G" A* _, _, o
<hr>( V: ]: ]8 Z, S' u5 Q9 @. N
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
. [, s0 y1 k! Z<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
$ ?+ u4 n( I3 X4 g6 x- \1 L+ q<p><center> </center></p>4 P0 Y/ K- \. D
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>' u" z( c8 @. L; D3 B
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
" ?% l( @( {; _9 g5 B2 E+ k<div class="suo-content"><div style="text-align: right;">
5 U+ s; A2 {# M7 m <div class="xControl"><i class="fa fa-caret-right"></i>( U( B- [3 [. _$ z9 {, R
<span class="xTitle"></span>
+ S; T' j' b! a" Z4 w: c 相关讨论7 K2 O# u9 o; K
<div style="clear: both;"></div>
" n' O+ H! H+ J4 c5 U) ~3 l </div>- s3 b/ N) |( G
<div class="xContent" style="display: none;"><p></p>( G9 x+ m! |! I' s9 @ U1 V
<ul>
9 X; [. F* I" o) B2 T<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.8 D! E/ D% ~& `" k: L0 k3 y
</li>
, L' Z! P" B4 ]7 ^<li>
_/ m# I ^1 J$ s链接现在失效了。# s. l/ L3 L* ?
</li>
& v% {# C% u& e/ v d$ [+ H<li>
$ }' [. \& |* M- \+ d这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...9 z4 m3 z; x' B+ ]1 G- l2 h: d
</li>. O) r- ^, Q' k$ e
</ul>
6 k: y1 z$ D( H( \* z4 O7 b<p></p></div>; l5 z: K/ ?: |% h
</div><p></p></div>+ x6 g) e3 T. n8 r' Z
<hr></div> |
|