飞雪团队

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

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

[复制链接]

8560

主题

8648

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
28010
发表于 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>
5 D- i4 P5 c* [4 a6 y2 {<div id="fc">
5 p5 x  r# ^+ h2 x' T5 P<p><center> </center></p>8 K0 ^: m' ]) m$ t% i' s
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
3 k( G9 S7 e$ Y# G<div class="suo-content"><div style="text-align: right;">( F0 ?- g( ]- j9 d' i3 \
                <div class="xControl"><i class="fa fa-caret-right"></i>& v6 j) o6 u( u
                        <span class="xTitle"></span> 7 ?' \& x5 f1 L
                        相关讨论
. J$ {) q  x( `- X& S+ h                        <div style="clear: both;"></div>% l- Y! j) s6 t3 e. V" s9 V  ?
                </div># Y& q( U: z& R% N( i  o; M
                <div class="xContent" style="display: none;"><p></p>
9 U0 x. u5 \2 t: n<ul>" [7 |# C, l6 Q4 S; s" c9 T
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>
; y; n2 }- `% V" ^* k- ?</li>
* N! s5 d7 @- J<li>
5 L) W0 q* N% c! L& ?) r另见:github.com/ropenscilabs/ezknitr</li>& z$ O9 _! c7 }3 ~/ I7 f. ~
</ul>' n$ F$ n" a* j! b2 ~5 K
<p></p></div>
! S- l& e8 Q$ N, c& G: s        </div><p></p></div>1 p! D  k1 B( m) P, K4 |
<hr>
  @% p7 J& p8 m6 D: P( ?<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
* q' Y6 g% {$ A3 D  s: I; E: ~<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
3 @, t* |  x0 b; i<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>
, F% i4 L! u% i! k# ]7 Z$ f  rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div># O  c/ y! {9 q: v! D. `
<div class="suo-content"><div style="text-align: right;">
$ ]& D: H$ l- {' x                <div class="xControl"><i class="fa fa-caret-right"></i>+ ^+ ]7 B2 d$ ~8 {3 }
                        <span class="xTitle"></span>
, M' X, t1 a. a% R# t" z/ d                        相关讨论5 A% z$ [9 h5 W1 V
                        <div style="clear: both;"></div>$ L  I1 k6 F* A; `
                </div>
% |1 @. f9 ]7 C" g" G1 Z; D( ?                <div class="xContent" style="display: none;"><p></p>
+ e2 j9 {4 v* G- t0 T$ ^<ul>
; Q) L% y# L. N9 M& c<li>
9 F) X& Q. Q0 l4 H# @这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。8 k4 P2 X( K8 E
</li>5 S7 z5 _! E/ c( v- n9 |
<li>
/ g: q" U9 \! v5 }. U2 F, X@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
. ~& `7 m: H8 v$ D9 J. H( s</li>
: u7 z% i3 V. P1 }& _' |8 Y5 N' k& K<li>
7 ]$ Z! J; k. _4 w8 n" f这对我有用,它不会改变工作目录。谢谢。
) Y& y, y' E* v" L7 l" P6 A4 W1 g% g</li>
- P& ~3 u* J4 N. U$ Z<li>
- j( q" ?% a% t8 c是的,这很完美。非常感谢!
7 R4 o  m. H% Y5 C4 w</li>
' m+ B: L( k: M" ?" W<li>
0 ~: Y% R" @7 L# k+ [1 @8 X0 q@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
+ f" C3 u( g, v. K9 ~7 m+ ^: f: T</ul>6 M8 ?4 @+ w4 }' `9 T8 [; K* Z
<p></p></div>
5 l- C) Q# w5 ~6 j( P0 B7 e        </div><p></p></div>! _! a. X( o& ~
<hr>
% ?; K1 Q2 v6 w0 Y<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
5 u% }2 W3 e2 k+ `) H<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>8 m  S; X# Q3 t$ ^
<p><center> </center></p>2 L0 S8 m. N3 K! S
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
/ O0 t$ T* }- ^# Y8 G<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
5 L* t' T% A$ Z5 ^. _<div class="suo-content"><div style="text-align: right;">' E) ~0 _8 r* T# K
                <div class="xControl"><i class="fa fa-caret-right"></i>. {) B% O/ J6 j5 e0 o' i
                        <span class="xTitle"></span>
6 a) f" D7 q) I1 u0 `7 U                        相关讨论
/ n! x$ R% H9 a- j                        <div style="clear: both;"></div>
, f7 D9 f* g4 W+ ]. b: `4 [+ f                </div>* o2 o1 u# `8 j* p/ {" @9 m6 S* s
                <div class="xContent" style="display: none;"><p></p>
8 l) F5 ?- H1 p; D) {<ul>
% E! U7 `# g7 J; V+ V% H<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
; L# M# x4 U& Q. r- t, N</li>
0 V! w: t: _+ Q<li>5 H- v4 N5 J6 M
链接现在失效了。4 v9 N. \, ^4 M/ [% c
</li>
+ ^# U( ?! n2 g<li>7 l8 }: A& x( W* w) p
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...0 k8 T# R4 k2 w. s$ n1 q9 L
</li>
/ e* P/ O/ j- q</ul>
* g2 {+ l: q' z& ]4 h<p></p></div>' W( V7 K( F! \! @
        </div><p></p></div>7 a% A/ `8 F- Y0 R
<hr></div>
回复

使用道具 举报

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

本版积分规则

手机版|飞雪团队

GMT+8, 2026-4-13 01:38 , Processed in 0.161070 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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