|
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>
2 {) Y; d" z1 D [<div id="fc">
# p& T5 K1 q: ?( V& w, w: K2 o- `<p><center> </center></p>8 v' C- `# m$ `5 y% P
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
; A! j) a$ c5 K) v$ a6 U' i, i<div class="suo-content"><div style="text-align: right;">1 [( E4 ]1 Z' `7 l+ `1 X. V
<div class="xControl"><i class="fa fa-caret-right"></i>
' G9 I/ ^0 [! W# ?1 j) w3 O' A0 C <span class="xTitle"></span> * B4 ^9 P" u. n. J2 @7 D& k# j
相关讨论4 X( a+ Q; g, D J2 A9 A& S% f/ ^ v: q
<div style="clear: both;"></div>
( ]5 S! D% a# J: O' P# t </div>/ D5 y f% n) Q7 B# G+ \
<div class="xContent" style="display: none;"><p></p>
) l6 }, ^% i0 R; R( m4 A" f<ul>- w( E/ Y C1 A
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>
, ?: X1 z4 V* t7 k) O& {</li>
8 N9 Q5 ?& e3 s' R% n<li>+ C, V# l) I/ \" Z) b
另见:github.com/ropenscilabs/ezknitr</li>
; N8 @/ ], o8 N, s</ul>* y9 E4 a% x. g) X* ~
<p></p></div>9 o' `6 V+ } i2 D# B
</div><p></p></div>4 Q: n6 `! p- d- G3 _
<hr>8 L4 e, x0 J: B8 s
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>& ~' B- i9 A$ [! H* `& ]
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>: @( i; P \# z+ t- G2 H7 C
<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>0 \1 s" W' N+ X" U
rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>
4 F, @0 h3 i. ]7 c [<div class="suo-content"><div style="text-align: right;">
' y1 N5 ^- ?' L5 M. A( I! F <div class="xControl"><i class="fa fa-caret-right"></i>
{: @" ?1 I" e; m$ v; P$ o! \8 b+ \ <span class="xTitle"></span> 7 Z1 T' G5 L: C4 f
相关讨论
/ C: e2 g& e- |' Y <div style="clear: both;"></div># ~ N o/ X# @# M+ |# u
</div>
8 i2 z& \' o7 w+ |3 I <div class="xContent" style="display: none;"><p></p>
+ f" D0 r9 E+ y- r; d4 z( M; a% O$ x<ul>6 ^& {+ `$ q" p
<li>
3 u1 {( a+ `+ Z4 ]3 @, U. x这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。0 X; o4 {1 r. t" }
</li>4 t2 M o8 t) d' P/ @$ Q
<li>' }$ o/ O1 I* d8 `" |
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。- T6 r: c& r) E
</li>
1 E! Y* X$ T, O, A/ t0 [<li>
! J2 K, @8 h; F4 n. K这对我有用,它不会改变工作目录。谢谢。
8 a4 O+ r8 _7 [& z& m' z</li>
. T: a/ V9 Y8 q' \4 z7 ^" D7 n<li>9 h) [- [! P: W4 F$ e; I4 _) q: R
是的,这很完美。非常感谢!. s0 p1 v: x' n7 P1 s/ l8 |
</li>
- \. D0 A8 g& q7 @9 I2 f<li># e! P }5 ]: f0 `; p
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
! r. U; ]1 \+ t. k9 d6 Q4 | H</ul>
" ?4 g! h7 l. v<p></p></div>, |5 a& C. e. `
</div><p></p></div>
; U, t! B: f$ q) D @7 W( }8 i<hr>
- }; q! |# X$ x) e/ E<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
) L7 Q! o- v1 r( k$ `0 Z/ Z2 f<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
, F, a8 Q8 s3 Z: `+ |<p><center> </center></p>% E" \% R* i6 o6 X% _
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
' K7 w2 r) j/ E9 c4 ?+ M<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
" S) A: Q5 e4 F<div class="suo-content"><div style="text-align: right;">
, {6 y K5 d, T6 D <div class="xControl"><i class="fa fa-caret-right"></i>
5 m2 C( Y4 N2 Q# Z: D; w3 B/ o <span class="xTitle"></span>
1 v3 u! E* x! d1 f 相关讨论
: X3 ?! r' t" r/ U* B3 i) I <div style="clear: both;"></div>) K# P8 W _& S5 `+ j6 g
</div>6 x2 l9 ^( h1 L) J, `% P
<div class="xContent" style="display: none;"><p></p>) |+ e' @ Z8 L6 L$ h$ U
<ul>+ B/ g9 X+ j4 q! @6 I* F5 R8 y9 V/ c
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
3 e' z3 G' B2 D9 y3 p$ V" ?</li>! m( d8 p) l& u4 S
<li>
0 x: O: [5 r( Z9 x( b链接现在失效了。 ~: f5 }8 y _# u/ A6 Y8 g
</li>
4 o2 i' g; s- ~5 m3 t<li>7 P! S( C! T' V! _, t8 G
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/.../ i. V6 S- f8 j. Y
</li>
# Q( d6 _. V% \) g</ul>+ ~, S8 A; I& J6 }! a
<p></p></div>: n9 ]; C: Z2 ~% y0 H0 L) G
</div><p></p></div>
, @4 b: {+ V& g* j: f* x1 ]; C0 G<hr></div> |
|