|
|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>
F" {0 c$ {' y<div id="fc">
i, I! s- [8 u; U<p><center> </center></p>+ ]& V+ N* y! n! L5 n4 ?
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>5 w" {5 }2 F& d+ \2 \" k# e( @
<div class="suo-content"><div style="text-align: right;">
D$ B O: n" U/ P$ Z0 [ <div class="xControl"><i class="fa fa-caret-right"></i>
$ w, @/ v+ V# \: ?. Z: ~. g <span class="xTitle"></span>
5 E' n$ `* B4 r9 d2 G. b$ C; j( ` 相关讨论9 E- ?2 A2 m+ d" U: i
<div style="clear: both;"></div>
1 V/ K/ V2 N$ J' L* o9 j- m </div>& F: P; F$ g C* ^) V5 T5 W
<div class="xContent" style="display: none;"><p></p>3 _) k. }2 f5 G! H5 R: w& f4 r, }2 ^
<ul>- }5 W' Q+ G4 N$ g' |5 b: a
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>- c: v; ^% m; ^) h8 ^/ g0 [
</li> F" }' K, i; Q' I
<li>
, [* C2 l. f- ^5 q/ o, N: t另见:github.com/ropenscilabs/ezknitr</li>
$ m4 w B1 m: c( {' p( k1 z- ]$ c</ul>1 w/ O1 A6 ~9 f/ }
<p></p></div>$ o B5 W# K& Q s8 j+ c- u4 G
</div><p></p></div>6 f0 Q) R+ m- C, @" A0 g
<hr>8 r! d8 P G9 A9 P3 j; z
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>$ {5 }2 Q6 A6 d7 Q1 J* {9 O8 d
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
/ f! j+ A T: R3 |# _. k<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>6 V4 P v* x3 ~) u
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
~6 Q1 m. C. n# I, ]<div class="suo-content"><div style="text-align: right;">4 M/ V! u* O. F
<div class="xControl"><i class="fa fa-caret-right"></i>8 _: c, E% R- B% G3 o8 ^1 z
<span class="xTitle"></span>
+ F- v- Y* U" y' H$ E# r. `5 @* E 相关讨论
5 y; p( t( N: \: q <div style="clear: both;"></div>
2 }, B$ J. N( c( P# f& u </div>( P% l1 T; T" t( f' g
<div class="xContent" style="display: none;"><p></p>
# l4 t Q6 z% i) O7 L* a<ul>3 d/ j% | B4 c
<li>$ v- {" `4 s# b7 g B+ w4 c
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
! t" p2 p3 @% J5 S9 P</li>
: S" F7 z( ]+ V5 m<li>" J0 Q$ R# D! V+ V0 B( A& R
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
0 o* c" H3 {! d0 e$ k) Y" [3 t2 w</li>2 a9 u \4 `+ C2 V
<li>
7 }# N# }% V- t9 N2 z+ |5 Z这对我有用,它不会改变工作目录。谢谢。- a. l5 \( g4 F M t; d) L
</li>8 N0 Q2 I& v# |8 y# G$ b
<li>1 I8 a- _- U3 ~0 j2 N8 F, ^
是的,这很完美。非常感谢!# r. n+ F J* ~7 N
</li>
1 V3 D9 x0 h$ C; B<li>9 a' |& s( B+ }1 r9 q4 Q# X( M
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>7 T/ T. `# m: q7 _6 O' F) H& ]
</ul>2 ~; R; H4 ^# q
<p></p></div>' Z6 S0 {5 j2 x, V2 K; B0 A( Q2 k+ b& }
</div><p></p></div>9 }& R2 l9 J D, [$ |1 A4 p* v
<hr>
- K% E9 x- b; z<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
. K% j* w" l8 Y6 {+ ^* E<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>, f( g, b0 z3 P- @
<p><center> </center></p>
5 s; A" I2 T' t<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>' i; t" S) K1 C! O
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
: {9 g7 q. Q- w' S, v: g& ^<div class="suo-content"><div style="text-align: right;">
' g/ ~: I; f2 ^5 a3 J6 [+ Q1 o <div class="xControl"><i class="fa fa-caret-right"></i>
3 v j3 R7 @" }7 M( W+ Y <span class="xTitle"></span> ! _, Y5 p- W" M$ O6 u1 G9 }
相关讨论
6 [ W' q/ I/ ^( M: } <div style="clear: both;"></div># W2 _2 h: t6 l/ G
</div>
/ \+ n2 S+ x1 a9 \& c <div class="xContent" style="display: none;"><p></p>
( `# }, q- T6 Q6 n' B. \<ul>3 G6 H" q% I- f$ s- ]. M
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
' c: d2 N+ v: P' E0 ^- D</li>
/ j. @# `4 `" }; N+ \! N<li>- W9 }9 G8 k6 ?+ c
链接现在失效了。
0 Q% J; D- Y9 f% U& P+ O</li>
5 K5 r. v ]! ]1 o4 [7 z) N( B7 r& l! K<li>
: u- C5 [. B& s3 n这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/..." ^& @ b2 _9 Y5 \
</li>
. ~ ^/ @' w5 U: t; u</ul>
* K% n4 V. I6 l% u2 A% X: d+ Q. v<p></p></div>" p! a" }" k7 [" E! v6 U
</div><p></p></div>
. l C) a, |+ Z! W<hr></div> |
|