飞雪团队

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 12841|回复: 0

R:在 RStudio 中,我如何将 knitr 输出到不同的文件夹以避免弄乱我的驱动器? ...

[复制链接]

7726

主题

7814

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
25508
发表于 2022-2-12 18:18:47 | 显示全部楼层 |阅读模式
<h2>R: In RStudio how do I make knitr output to a different folder to avoid cluttering up my drive?</h2>6 }5 Q9 T% T9 T2 B0 P
<div id="fc">
$ J  ~" @) G3 k<p><center> </center></p>+ b4 f5 \% E; S/ k
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>/ S# x  {+ u( j- s, U* E
<div class="suo-content"><div style="text-align: right;">& N, J9 y0 ?# P6 F  d' x1 d; z; U
                <div class="xControl"><i class="fa fa-caret-right"></i>
7 ^4 K8 \+ B# S% H                        <span class="xTitle"></span>
* i& I' m  g; C                        相关讨论0 d* E' I# X! g5 B& T1 B, e
                        <div style="clear: both;"></div>, @) z0 N1 B  S/ M* F
                </div>9 W: c& p# j; w
                <div class="xContent" style="display: none;"><p></p>
0 X$ s6 Y; i8 a  w/ z% ~<ul>! ?, `% u4 c8 a5 E+ O; g
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>' Q, x) s0 k( K. Z$ p2 Z
</li>
2 _9 }& ]" X. k) y9 S4 [: C<li># E! U( G) O0 \9 [7 k/ ?/ ~, _* Z
另见:github.com/ropenscilabs/ezknitr</li>, |0 K# U7 T) ]6 h  E
</ul>5 k' x  M( K3 f3 p
<p></p></div>
& W, H& ]6 C7 W" P/ v- @        </div><p></p></div>* K1 n1 i! A& @* j% t
<hr>9 B( e1 f. o+ Q6 E3 C
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>1 ~% W7 K! P" o' f3 O
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>7 j. T% N6 m8 M
<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 C* p6 ?& P5 M* M  rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>" f0 Q& ^. k7 h* x6 O$ Y' |" p" P, _
<div class="suo-content"><div style="text-align: right;">
( r* m2 H: L0 D5 {0 u5 @                <div class="xControl"><i class="fa fa-caret-right"></i>% ]/ Y3 S' j/ y2 h$ u, U
                        <span class="xTitle"></span> % v; ?$ r; o2 x' B+ ~  O+ e
                        相关讨论+ t' m& A* _2 K# _+ j
                        <div style="clear: both;"></div>
; E$ Z: p5 y# T& R7 n                </div>
2 w- R9 D: I/ @/ A6 c7 v1 ]2 _/ H/ e                <div class="xContent" style="display: none;"><p></p>0 V6 C& d8 y* _, s' Q! i  G7 M/ {
<ul>
; W7 Y8 J3 f+ h. L" N<li>5 N' V1 D9 x' m9 |/ h2 {/ m( V
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。5 z, F5 [1 p9 I/ j0 H" t$ A
</li>
! P9 N8 ?+ q. ^3 k<li>
+ V; d3 y6 ^/ Q8 T@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。3 m6 |- P& u  M0 _& c3 z
</li>$ @+ L1 H! }0 D: N2 I
<li>
0 x: j; Q: ]# {; _( ~这对我有用,它不会改变工作目录。谢谢。% N& c5 t8 n  [6 _0 V" n: A
</li>
% E$ Z9 `. G* i. Y3 a. R<li>8 w; v5 V8 P$ [' F* [/ j
是的,这很完美。非常感谢!
& S, `. J2 n0 w1 ?! ?$ [</li>% T: j9 x# L7 N" P
<li>
; ?" Q' `! b6 Z$ m" _1 n/ ~. I@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li># i+ _  |2 [+ `& T0 V/ ~
</ul>3 p$ c3 k+ U9 K4 `3 k# T
<p></p></div>
3 |' O2 @, e/ K( {- c        </div><p></p></div>+ ?8 N  S3 \) z& p; ]" a0 k! q
<hr>9 ~$ a- b" b$ q7 K. K% Y
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p># e( K$ b# }5 b& Q- I2 u
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>" e% Y  G, r% q. A# S8 s
<p><center> </center></p>8 P% C0 a* k& _, U1 D3 v, s+ y" e6 e
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>: {8 R8 Z$ `: R. ?7 g, r
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>! n. z. T+ U+ J# h
<div class="suo-content"><div style="text-align: right;">
, a5 L. R6 H$ r# U" o6 L5 ?) [                <div class="xControl"><i class="fa fa-caret-right"></i>
1 H+ O7 b+ J: `& G                        <span class="xTitle"></span>
) R% a9 H7 s8 O( D5 B9 E                        相关讨论; D# l% W2 \* f+ H' p. Z3 q1 ]
                        <div style="clear: both;"></div>
( y' N. Z5 x) L$ x/ M9 {                </div>: n( I3 Y* h5 F/ A
                <div class="xContent" style="display: none;"><p></p>
$ z; U' R! n3 {% B7 H" C<ul>, l$ l7 v- k) {" @. q% w. w, J
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.! c1 @& X/ H  a2 h7 f
</li>1 m$ c2 F0 D6 G+ `: p& t
<li>0 R! z& N) [% U* N6 Y* X7 u: t
链接现在失效了。
* F! j9 g. ?/ B- c7 [- Y2 K( b</li>
2 E: s$ j; ?1 V4 m  S, n1 p<li>" n% Y/ g% H' B. m/ |
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...5 G0 F, a' b" ^% q  T
</li>! `) s1 k% r) F/ Q2 x3 U( s
</ul>
9 X1 Y1 J- H0 [/ a! d<p></p></div>
# b: s" K9 z1 J        </div><p></p></div>3 P& `# j4 n% L9 D* d4 j7 r' i
<hr></div>
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|飞雪团队

GMT+8, 2025-10-31 02:25 , Processed in 0.061538 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表