飞雪团队

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

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

[复制链接]

7994

主题

8082

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
26312
发表于 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>
: x4 F" G( h4 }9 n<div id="fc">
( a, J/ E) k/ B% Y+ H' ?<p><center> </center></p>* H% e" y5 M& j
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
, h1 G3 ~% c; K0 m. v! h<div class="suo-content"><div style="text-align: right;">
' H1 G7 j6 ^5 N- ]                <div class="xControl"><i class="fa fa-caret-right"></i>
, p1 s0 C+ f' |! l- D$ A: O                        <span class="xTitle"></span> % ^/ T2 w- _; N' G5 R; n
                        相关讨论5 O* V( G! O% U# V. B
                        <div style="clear: both;"></div>! m4 w/ ?' @" p
                </div>: F9 u8 N# I; F$ D) H. m+ m! B' B
                <div class="xContent" style="display: none;"><p></p>
$ M) e+ w9 _8 j<ul>
' ]) m: B( h' d1 l1 H<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn># B" @2 c5 R$ M7 N
</li>1 B7 `/ H9 W3 W
<li>: G+ I0 K# ^+ N3 S1 n4 Y& U
另见:github.com/ropenscilabs/ezknitr</li>% d. g! H  v9 y) l' ^
</ul>& W( F% e* U8 F
<p></p></div>0 ~8 P2 J' G9 v  @: T' o
        </div><p></p></div>
  n1 U6 j: \4 z<hr>% P+ a; ~+ i/ O$ `
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>: f% E' o4 ]7 w6 `( X" C
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>4 h+ U0 i; c" j: ?! d4 b
<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>
4 i5 \4 G, f2 l6 X  rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>: t/ `* |: i- K& L  e$ K
<div class="suo-content"><div style="text-align: right;">
4 D) i9 x1 D- U; K% [: X                <div class="xControl"><i class="fa fa-caret-right"></i>/ I% F5 o( m0 \* k! _1 T) M3 f
                        <span class="xTitle"></span> 1 e0 w! P8 r2 @8 C  N) `2 h# T
                        相关讨论3 N1 s) T* W: J- ?
                        <div style="clear: both;"></div>
# \' h) v, |0 L5 y) }' f                </div>8 [+ x( |4 d$ ~. j4 f
                <div class="xContent" style="display: none;"><p></p>
) ?; ^: n/ T) n& |% b<ul>( G, k" p" O2 x* T! \' y0 X
<li>; d* ]- b* B* v* ]9 _
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
' v- q/ {; O' M- ]2 S' T. u# Y7 D</li>2 D; r$ t) M+ U8 K
<li>% w0 ]$ [. Q, g8 {
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
$ G& O5 O. C8 b3 O# l9 H$ F</li>
; e/ p. t3 T- z: T1 G/ w<li>& R; t% e# H9 U* J
这对我有用,它不会改变工作目录。谢谢。( G8 Z! x# z7 h% Q1 Q$ G
</li>) \5 B; W; B% m, b$ B$ p
<li>& `( O8 }, Z8 a. y4 S0 |* c
是的,这很完美。非常感谢!
' F( |' p9 O3 s</li>/ z1 v$ u* \) X! \5 A, U
<li>
6 L$ Y9 F! E: O- g) G# I6 b7 Z3 c9 \@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>. O9 e9 i+ Q6 U0 S+ R  h
</ul>( W0 _) `# M8 Z- N
<p></p></div>
4 y. h) n0 t( k( p$ |        </div><p></p></div>
0 R' ]' f9 I6 q! J# X<hr>) ^+ c( x6 D- U# c% J8 a8 G
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
1 G9 E; M2 F0 p3 Q- B8 Q<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>( E5 B$ P  e' Y: n1 L( K8 i
<p><center> </center></p>
" p1 ~+ K7 l+ d: f<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>* _" S) u" B3 i. @# L
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
& j" G; D0 T# q8 C0 G- F<div class="suo-content"><div style="text-align: right;"># G8 y, w3 v* e# ^2 q
                <div class="xControl"><i class="fa fa-caret-right"></i>
  O! M8 S0 @5 f% Y1 P% h# E6 m                        <span class="xTitle"></span> # _1 w7 ]/ P9 K; C1 r3 ], Q4 z1 d
                        相关讨论
1 V, S3 l  u4 c                        <div style="clear: both;"></div>" C, v* E/ X. j) N
                </div>: z7 y: g5 W6 n- L" V5 K  o' a2 ^" Z
                <div class="xContent" style="display: none;"><p></p>
, \5 j) j% O1 j* d( ~+ k<ul>* R9 h/ r" O9 M; d1 O* ^
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.2 j4 I/ I* R1 x7 [$ V
</li>
% F8 j) w/ _, _  X" h  x: P<li>  {+ J7 R2 C0 C' E) w) ]
链接现在失效了。
) u9 f+ W* z8 X1 }" L+ O+ w</li>
% {( M) ?: E  K1 j5 v. V5 y6 R<li>7 x9 x' h+ h, a! F3 Z7 U
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
8 h2 G! @- N$ @" D</li>- x0 E$ C) V  C1 T5 x
</ul>
3 {  B/ W; I3 c0 J) e<p></p></div>
1 [; ^" `, H0 j' L        </div><p></p></div>
5 u0 ~' i$ W& z# V8 U<hr></div>
回复

使用道具 举报

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

本版积分规则

手机版|飞雪团队

GMT+8, 2025-11-29 20:31 , Processed in 0.070115 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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