飞雪团队

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

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

[复制链接]

4137

主题

4225

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14711
发表于 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>2 F7 `' X; O+ I$ n
<div id="fc">/ [' T4 J& g6 d2 S+ }* q, g' L6 J
<p><center> </center></p>' e% b& P5 a& {; u: \! }1 w" S0 y
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
. \8 C& L, S2 J5 S: E<div class="suo-content"><div style="text-align: right;">* f- k: d% F) P
                <div class="xControl"><i class="fa fa-caret-right"></i>$ U& D& W6 P1 s% `! T
                        <span class="xTitle"></span>
# m! T& a5 I6 U2 m4 c6 p5 T! y                        相关讨论( l' \' G3 y) c
                        <div style="clear: both;"></div>
7 B2 j5 W2 `7 i$ j                </div>8 Z, l% K) e5 {% [& W1 @
                <div class="xContent" style="display: none;"><p></p>: y, ^3 f3 h  r5 V: y  g
<ul>' T4 ?4 D) G( T
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>% T# P9 V. o3 t, E* @/ }
</li>0 n6 n1 f, T3 h8 A; G
<li>
/ u- Z5 D0 L- g0 F另见:github.com/ropenscilabs/ezknitr</li>; ?6 L( y  ?1 g3 \/ ^
</ul>
) t( T; K1 F7 }9 R: |<p></p></div>/ w4 f' _; M1 D$ y3 a
        </div><p></p></div>
( M+ F8 c2 c& r0 A/ j<hr>8 C( R  [, X& y# T( k& u
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
2 Z& M8 q# t  M* d" s& f' e$ d<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>  r2 k% P; b& q2 Y: e; b5 @# k& K+ h
<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>1 C1 Z2 @+ d. s* C
  rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>% r* ]( w8 Q  f) K( O
<div class="suo-content"><div style="text-align: right;">
2 v/ S! \( H- u                <div class="xControl"><i class="fa fa-caret-right"></i>
/ [3 s2 I0 H& S) l9 k" Q8 R9 C                        <span class="xTitle"></span> / N7 b# z& x) L. c. }- w1 N
                        相关讨论6 K# D, w- ?3 T* X, D' R
                        <div style="clear: both;"></div>
" V7 x4 w7 P/ U- y- x# U1 g' T                </div>
  v) k# T" q1 ?3 O                <div class="xContent" style="display: none;"><p></p>
4 a, `8 v5 ^# k2 H' M3 E9 d& q<ul>  g: ?% M: L+ V, j/ _
<li>
5 O1 N7 ^3 _$ D. J5 c这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
% W5 ^1 u7 Y$ B" V& U2 q4 y0 {</li>" i6 ?; k, p" |  ?- T  z
<li>
2 g) @# E2 o2 c1 D) p  G0 l@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。
; H$ g" O  Q& G- Z</li>3 X5 h; m! p, R9 n
<li>/ e8 Y- `; a+ F0 N* l
这对我有用,它不会改变工作目录。谢谢。) q# ^" o2 m+ q4 C
</li>
5 K4 f. j( o! r0 ?<li># X7 [; P! ^1 t; b6 I( Q
是的,这很完美。非常感谢!5 w/ F/ k9 t# q9 w' k* P
</li>( Q, }. w) ~  H# a, A- M& |
<li>, c; w2 {, d5 w- A6 D
@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>, d& S* ^  k: h: l5 u& i, ~/ ?
</ul>$ {: T* D# y2 C+ L2 B
<p></p></div>
4 ~+ B7 F# t: b& Q        </div><p></p></div>5 i, \2 @6 D' z4 [+ \4 X5 r% K
<hr>
3 _9 Z& [3 C# u% ~9 C" s4 B. M<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>* K7 M; Y; a4 z' @2 [; k
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>$ {* c! X/ g& c
<p><center> </center></p>( i# X, }9 ^/ h
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>; A/ ^/ Y# H: c5 I6 m( \8 e: u! u/ t
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
5 H5 M0 c0 ], C6 @+ t7 F8 y5 R  O6 x8 r<div class="suo-content"><div style="text-align: right;">3 s' S: _5 }$ H+ C' A0 [8 X
                <div class="xControl"><i class="fa fa-caret-right"></i>+ R1 e. P1 ~1 ~4 b, ]
                        <span class="xTitle"></span> ) ]. r6 O! @2 ~
                        相关讨论
- K9 w1 |( ^' L* B' a6 N! ?                        <div style="clear: both;"></div>0 u9 m" R5 O* P9 [$ _0 S! b' J
                </div>
# B, V* d' X/ \* V# F                <div class="xContent" style="display: none;"><p></p>
# v8 S) y4 @# q- \6 M% n<ul>
! N6 ~$ [! f0 \  ?, F<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
4 k0 i3 S% }2 H) P7 ^7 G$ {</li>
, }7 b$ Q; r+ e5 P3 d7 Y1 _<li>
, C- Q  k# n0 Z0 i链接现在失效了。/ J4 a5 Z9 g% g' d; D1 ^! g2 e) X
</li>
& D+ d5 z& U3 n3 i7 y- h<li>
1 G, ?; e0 w5 u5 R这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...* M9 L* p0 r7 G" n) v
</li>
1 F/ q8 x  g* j8 C/ X8 z% F</ul>0 J# o+ Y$ M0 w/ K% s1 d
<p></p></div>$ S- R4 e3 D- k  a4 g! S
        </div><p></p></div>6 z2 K% g6 G" E& H. ^7 R
<hr></div>
回复

使用道具 举报

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

本版积分规则

手机版|飞雪团队

GMT+8, 2024-4-27 07:02 , Processed in 0.066128 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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