飞雪团队

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

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

[复制链接]

9016

主题

9104

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
29378
发表于 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% a) o3 Q0 d
<div id="fc">
/ G3 k+ q4 A' d5 q/ y7 t1 _<p><center> </center></p>) S4 |# D8 R- b( v+ l$ ^
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>- ?3 U  g: U( Y9 n
<div class="suo-content"><div style="text-align: right;">
# o2 V2 a8 v+ g( G1 i                <div class="xControl"><i class="fa fa-caret-right"></i>
+ ]1 X: f1 t% \! h  L0 L# p! r                        <span class="xTitle"></span> ' B) G: t- S& x% I0 N4 v
                        相关讨论
. A  h" w5 b- N' ]                        <div style="clear: both;"></div>4 H, T' i" O7 i" ~3 u% I
                </div>
: ?2 @5 m- H/ I" T/ z$ o* e                <div class="xContent" style="display: none;"><p></p>; K9 H' d# l9 [
<ul>8 c1 h$ ~9 w* Z0 @& H
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>* z# K6 a3 E- M" l- o$ p
</li>
6 C8 [7 w* @  O' y% @& n) U& r9 j( Z. m<li>
  p# }  D% F/ f) q" F; y另见:github.com/ropenscilabs/ezknitr</li>
4 e& ?  W" G- D: v: R6 A</ul>
* \- H  h7 E* w' v; t0 c<p></p></div>
( u& A4 C# Q- Q" G        </div><p></p></div>- r+ p3 D9 S2 S, @# Z8 d+ n1 h
<hr>
! l& l: Q. u1 ^6 ?  O2 a1 A<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
0 U3 z( i7 V' B  x' K1 y: g<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>) \" c* ?5 E3 }; n( ~/ a$ _4 }
<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>- v: k3 _! Z( Q; U9 v. _2 C0 K- j/ Z
  rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>% Y1 z+ r1 Q- }8 D
<div class="suo-content"><div style="text-align: right;">  ^* [5 Z1 |7 X/ }  E8 u# V" ~. @' x
                <div class="xControl"><i class="fa fa-caret-right"></i>
% ^5 q, B+ h( o                        <span class="xTitle"></span>
& T: {. b* i9 \8 m. f: J                        相关讨论+ s, X6 f: v% @/ F0 S$ w1 |
                        <div style="clear: both;"></div>
' \+ h( ]) X# U0 O9 b2 Z                </div>7 \( M3 W( w. M7 O* y4 e
                <div class="xContent" style="display: none;"><p></p>* R* s- u, d# L7 E/ j$ _
<ul>
% R$ C+ l) r# G! t5 H2 [, t<li>/ G$ u, ^. K# t: _: p& E
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。6 w& Z% ?5 |4 Z7 w
</li>9 r- ^& i& v8 J, ?
<li>
. }7 i$ [+ s2 T@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。6 B9 c/ G+ N& W' ?( v4 l7 p2 b
</li>
7 e3 q: e- z; g/ g; m0 P1 B8 L% j<li>
1 {' d- n+ v# Z8 V! A& {这对我有用,它不会改变工作目录。谢谢。$ A0 V1 y* I, z( T
</li>
9 _3 V$ ]- i7 F4 ~" {* i<li>
4 c8 \& G6 c, U$ [  |# [: G是的,这很完美。非常感谢!
# A9 `' z9 N# `, F- @</li>9 u+ l" u" u6 b+ k* d
<li>
* r* f3 g& k' h" ~4 ^0 V/ M@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>, |6 |7 L3 p. E( Z
</ul>9 F: p' b; V/ d) k' n2 N
<p></p></div>
- F; p+ j; Y+ _$ W        </div><p></p></div>1 a9 F2 S8 a1 P
<hr>) J  z3 R% E, M7 p4 B( z
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>) d  s" ~: E! G( w; P! o# e! Q
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>2 N" |9 n7 R! @7 \# x- u
<p><center> </center></p>  C2 e# c6 r' D
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>. B) p4 K! q5 b1 A( W
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p># L7 S1 i9 k! M9 \# q
<div class="suo-content"><div style="text-align: right;">
/ [# ], ~6 \% d7 T7 E                <div class="xControl"><i class="fa fa-caret-right"></i>
! S" Y  d- h8 M- G" a$ e; A" Y& ?" W                        <span class="xTitle"></span>
8 F4 E1 ]2 Y" t7 v; S. c                        相关讨论
9 }! U$ Z/ Z: k: U& Y% g; c                        <div style="clear: both;"></div>, N: r4 I- J- H* W& d) `( t9 P
                </div>
* t! B& k" m) J6 e6 g) j                <div class="xContent" style="display: none;"><p></p>4 l% ^4 h6 T: J( M
<ul>' K( T' k- Q$ J8 `" A4 V2 \+ O! G
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.% N. n9 v! A' u# C6 h/ V' ~) [& o
</li>9 b8 v* b# V; X
<li>
8 q' V$ w, @! D1 B3 F链接现在失效了。( R# \. f3 M3 a9 s9 i# c9 `% Y
</li>
1 `) f7 w5 |5 `; q! a9 o<li>
! P2 o! l' o! D) v+ e4 U' M% h  q这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/..., L  G4 E5 X) y2 M
</li>
$ T# `5 S& v9 j( Y" W</ul>
- {3 Q* j! ]0 I1 m. `& B5 Q0 j3 e<p></p></div>
/ u! p5 K7 W: _1 d        </div><p></p></div>- e7 O4 o/ N( F  q
<hr></div>
回复

使用道具 举报

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

本版积分规则

手机版|飞雪团队

GMT+8, 2026-7-28 01:52 , Processed in 0.062244 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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