飞雪团队

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

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

[复制链接]

8822

主题

8910

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
28796
发表于 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>& q" b2 v2 S7 \% j" b
<div id="fc">( Y4 Y6 G2 K7 g' i! M
<p><center> </center></p>
' t5 h" X7 A3 r. |<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
6 G( v; a7 E! ]4 R( s<div class="suo-content"><div style="text-align: right;">3 V, v$ J1 q3 z: g5 a
                <div class="xControl"><i class="fa fa-caret-right"></i>* m9 H* t: v$ i  `$ i
                        <span class="xTitle"></span> 3 [" M0 c$ t' E6 l0 f
                        相关讨论
- e# }0 Y$ P, Y* z0 m4 o4 H! ~5 N                        <div style="clear: both;"></div>
2 n, T* ~/ Z% T) J                </div>
& l1 T8 R9 W  i7 e, |                <div class="xContent" style="display: none;"><p></p>
3 W" R" t9 ]' G2 r  N/ y<ul>
" o1 N5 ]8 h4 Z; L: x: F7 d1 @<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>( N, `% f; q# |$ Q  {3 W
</li>
; w1 L$ t9 D; E* `, w% G, X<li>% z% l1 P4 o) H$ X) G+ u4 t
另见:github.com/ropenscilabs/ezknitr</li>
! d/ Z3 X) M/ T: U</ul>
9 ^. t9 {  D4 P( ^, y<p></p></div>
$ L/ r, w2 l% p        </div><p></p></div>
2 `3 x4 Q) ~, g. f8 }<hr>& i" V  f5 S$ f1 \# |8 e# {( L. g% v
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>4 n& D- Y. W& `2 [: C! p
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
/ j4 g  _! h4 f; O7 K0 `<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>
3 [: s  q( s+ y7 u" }" a  W  rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>' F& Y2 f- A, n5 T& R9 U
<div class="suo-content"><div style="text-align: right;">) a; D& _- ?5 V% b% o3 T
                <div class="xControl"><i class="fa fa-caret-right"></i>3 D4 e# c8 N* U& D
                        <span class="xTitle"></span>
7 _: ~6 i$ u! J: B                        相关讨论9 e2 g0 s: ?) ~; n
                        <div style="clear: both;"></div>$ j* h0 h( H) N2 k2 k1 L9 b9 F5 q
                </div>7 c9 G9 {* U% `. E3 S/ @- G# `
                <div class="xContent" style="display: none;"><p></p>
& d* u  A: ?: a2 f- O<ul>. D3 V  U( p$ h  s( Q* O
<li>
# N( \4 E# j+ F. a; D/ T+ `这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
! B* \( `: f$ |. U" e</li>
, |" H5 {+ H. c<li>
+ t! Y  g7 F2 E! ^! }@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。4 V# g% b1 V$ d5 M0 r
</li>7 z7 U3 V) R* F( Y- q, I
<li>7 Y8 X/ e! f. ?* G. j% w# q5 O
这对我有用,它不会改变工作目录。谢谢。# _: X8 T, v: I- ]+ p# q; Q
</li>
5 K/ v# K# @) }+ b# t  n3 R0 c<li>  t! _* O5 r+ K$ o: V
是的,这很完美。非常感谢!2 L2 Q, {, f" \1 J- }* \
</li>
% ?6 ?. m! Q$ r0 R# N<li>; Y/ o: |/ {7 D
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>9 `5 W! X# u, B  _4 w9 o3 o
</ul>
7 c) {& k  [  H7 j7 P<p></p></div>  h3 H* `% t' A" a7 y+ Y9 t" ]
        </div><p></p></div>5 u# g, S) L" x* C0 g
<hr>
6 U3 s7 F8 J8 j" F: ^1 c<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>  {% j& I8 x8 @0 E4 e( J- j
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
- n( y, }2 q! u6 e  D<p><center> </center></p>
8 I( M) W5 U4 ]( w! Z% @2 X/ ^<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>% a% G; x$ K$ T- M  t
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>8 K+ H: i4 @0 x0 G' d
<div class="suo-content"><div style="text-align: right;">
7 V8 q* \& h- t, O                <div class="xControl"><i class="fa fa-caret-right"></i>4 m5 |- D7 \4 a9 E$ j
                        <span class="xTitle"></span>
9 b0 V( f- {- B" S; w8 T                        相关讨论/ F: i# G" A& m  g
                        <div style="clear: both;"></div>
: y% Q! u+ U" V) f3 l0 O+ l1 l                </div>
  P9 ?8 w1 ~" ]& x4 ~+ `9 y+ K                <div class="xContent" style="display: none;"><p></p>8 g/ v9 @4 J& ?8 Q
<ul>
" N9 l" g; m6 g" r" |/ G<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
4 W+ z4 |3 ]: ~) {# R% J* k</li>. g1 b) |: X" D# y3 n3 Z
<li>5 ~6 @$ Q/ c) m* ^
链接现在失效了。2 x8 ^" x8 O& \2 l! k
</li>
7 Y" H: x& [, d7 m; Z5 i<li>5 Q! v2 t4 {* ~* Y3 y2 Y
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...
' g3 T7 H, Z  h  i. Q" U- M</li>
" _% Q. \/ }" U</ul>5 B7 k  w+ ~& L  U! J
<p></p></div>
- w8 q' J4 b4 D% |7 L( I* t, ~" [        </div><p></p></div>$ s- O0 p8 C  `$ R9 G: u
<hr></div>
回复

使用道具 举报

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

本版积分规则

手机版|飞雪团队

GMT+8, 2026-5-28 03:55 , Processed in 0.062357 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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