飞雪团队

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

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

[复制链接]

4822

主题

4910

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
16784
发表于 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>
7 P, z2 I7 B, t6 e+ N' O  z: r<div id="fc">
9 a1 x/ A# U# O  u<p><center> </center></p>- r9 O6 j# a/ I, F
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>2 ]* F" n8 @* M% {! ?
<div class="suo-content"><div style="text-align: right;">
$ V9 j* U& ^3 q  {3 c( v  ~' ?                <div class="xControl"><i class="fa fa-caret-right"></i>* l, u% f# I# I+ i4 Z& k
                        <span class="xTitle"></span> * d+ }2 B' e0 Y4 J- R
                        相关讨论
! Q4 J7 U" o3 w6 G& D, Z, j8 L" O. P! B                        <div style="clear: both;"></div>; Q, |; d7 G9 N) L4 J( Z
                </div>
- H& q6 Q' f- i  v' D, e! z                <div class="xContent" style="display: none;"><p></p>
( c4 i# v3 o# U$ P<ul>" H8 u5 T! u6 r5 z4 N
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>
# v# \" t/ q4 L! O. {</li># l% u9 ], {. O) k& J( H+ Q
<li>( \( W7 o7 T  V5 l9 z  O, w
另见:github.com/ropenscilabs/ezknitr</li>) i! ~, i" [- n) ^* l
</ul>5 V9 Z' H+ _4 O5 K, U
<p></p></div>
  k! C! x( s) b7 i- C3 s        </div><p></p></div>
4 Y# [) ~! n4 l2 ]; G<hr>
" q/ W' i' e% [<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
. Y; K5 o3 D* g- l+ j<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
. b- ]8 o+ x0 y# \+ x) u<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>
) c& Y! Q! Z+ {: b9 a  rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>3 v$ Q) m+ ]; W& q; m& s
<div class="suo-content"><div style="text-align: right;">
) {2 u& I* I- _                <div class="xControl"><i class="fa fa-caret-right"></i>9 P* `! p' s/ b9 P
                        <span class="xTitle"></span>
% D" q& y# A; v: f9 |; _7 U                        相关讨论
3 o- ~' y8 j; m                        <div style="clear: both;"></div>
: _9 n7 Z; W/ E9 r$ L3 D3 Y4 d                </div>/ k9 R& y5 ~5 s& G
                <div class="xContent" style="display: none;"><p></p>% `1 W. Y+ `) H; H
<ul>
- b* f8 u1 q* x! h<li>
( I$ A) @* |' V. v) @; }5 f: b这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
( g! e! ^) T5 b, _; G# M8 r6 d</li>
2 H/ C: p5 Q6 N# Z& y<li>( E& l6 i: u9 t, n
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。1 t: q: i; {3 e; B6 z6 v3 X& R! h2 L
</li>& _2 X6 l( L, G
<li>
5 V5 K- \. `2 ]+ e( u这对我有用,它不会改变工作目录。谢谢。& x+ C6 W9 h: U- j  X+ @
</li>
; |6 N( o) {) ]8 _<li>0 `* H4 W& X' t0 E; ?7 y
是的,这很完美。非常感谢!
: f: m8 |' l0 l  S' V; W. c</li>* p4 X4 j6 V7 \
<li>* c+ I$ ~' u, g8 }7 Y- j
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
. k7 k- {( h/ J) t+ n0 J</ul>
+ R3 R/ x) g6 b/ [. H<p></p></div>
4 b7 \$ ?; q- C        </div><p></p></div>
; P5 J( Z& b  }8 `6 W- n4 L7 m1 P2 {<hr>1 `1 L8 W9 C# A" N' b
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>; Q, p% V8 q# [! f
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
2 P; U/ U4 B, Z! Q, o. o<p><center> </center></p>
. }% E& _6 K+ L( Q5 H<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
3 [( ^+ }* R1 A* q0 x<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>( M# e+ n, r* I
<div class="suo-content"><div style="text-align: right;">
( s) R& @) U- G2 B6 [3 ^% `% d                <div class="xControl"><i class="fa fa-caret-right"></i>/ G/ [/ L& j3 U3 I
                        <span class="xTitle"></span>
4 M: v( F1 I) Z( i8 d# L                        相关讨论
8 H# Q. m3 L' n! b9 C) Y                        <div style="clear: both;"></div>, _2 U0 w/ u/ e2 N/ j0 t7 h& j: ?
                </div>
3 T9 e# a% ^2 ]# W+ H4 m$ |                <div class="xContent" style="display: none;"><p></p>% ?. S/ V8 y  ~/ i7 k5 [2 b
<ul>
) q; c; Y5 \0 T<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.+ A7 D- C" f- _$ ~
</li>0 k0 `. y+ a+ ?8 d
<li>
7 y9 P, D+ H. W+ j; \% b- p链接现在失效了。
9 F% W: w2 v9 X. A' W5 {% C6 i</li>* I- D7 h7 L$ [& K
<li>
6 ~. N: t) J! h' O% `这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
9 s) B; x  ~2 s: @  x</li>
9 ?  ~1 [+ q# A</ul>
0 I+ G) s) G2 C: N: @<p></p></div>
: \0 [  W% N  Q+ C8 y$ {7 M- P        </div><p></p></div>- O) c  q; R5 I9 ]. F: E( c
<hr></div>
回复

使用道具 举报

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

本版积分规则

手机版|飞雪团队

GMT+8, 2024-9-20 00:27 , Processed in 0.064973 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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