飞雪团队

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

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

[复制链接]

8242

主题

8330

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
27056
发表于 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>* H! p: `& C* B1 J
<div id="fc">6 _/ D4 Q# m' ]2 j5 q4 n3 O
<p><center> </center></p>( e7 L( D& I' a
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>: q' I+ Y9 a2 o8 y/ i, v
<div class="suo-content"><div style="text-align: right;">
7 s0 O- P& S5 ^' ]                <div class="xControl"><i class="fa fa-caret-right"></i>- I+ Z3 P0 @+ S
                        <span class="xTitle"></span> 7 @( G, g" b$ M
                        相关讨论
3 z/ V- n8 j6 ^+ f8 g9 ?                        <div style="clear: both;"></div>
) J. h; r/ p2 `8 i" R& a                </div>7 A) }- m, m/ e* q  {; R; ~$ X& V' X
                <div class="xContent" style="display: none;"><p></p>
1 g: D8 {* Q" A8 [: q, ?<ul>
$ {0 d1 n/ m# R: Q$ e<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>* n% M# e) q& t
</li>: v! t& c  S. Q) M- z
<li>
6 u# ?7 A  Q9 z5 S1 E/ f另见:github.com/ropenscilabs/ezknitr</li>7 {6 @- y: ~1 \% h/ n/ x8 Y
</ul>
( z2 R2 \7 \- L<p></p></div>* e! V2 Z# ~3 g+ y. A- [7 b/ k( a
        </div><p></p></div>/ r0 ]+ ?0 M$ C3 o/ \0 \
<hr>/ p0 g4 v; |6 g/ ?( T6 p. m
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p>
  s" U; p8 B/ d% t2 n<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
8 @4 {! F/ \0 C, E; h* 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>) ?/ o- Y8 S8 H1 j, O
  rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>) B( T) w4 {1 k) G4 O, g8 `/ y0 G# ^
<div class="suo-content"><div style="text-align: right;">
- o5 e7 m: j/ Q$ x3 ~0 S2 d                <div class="xControl"><i class="fa fa-caret-right"></i>* m; `5 J# k% f! M( N2 W
                        <span class="xTitle"></span> / j+ u9 [+ o/ O& b
                        相关讨论
& T0 c1 `7 ?: v, }                        <div style="clear: both;"></div>
( ]3 F/ ?9 w8 ^$ V. U( F                </div>
  ?1 ]. e, t1 P2 J2 _* T2 t0 W                <div class="xContent" style="display: none;"><p></p>
, \$ A, c5 }  a; M3 O<ul>- \7 k% G5 W8 ^+ ^% q: E( l
<li>' b# f  {& L' @5 g, f! E
这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。! p" L7 q9 i5 B
</li>' ~) P4 w2 c: c$ N0 v  n" s) m
<li>+ U# `1 E( d; t8 G- J  E' z5 t
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。" k0 L+ W' |! ?) ]( t0 R3 p/ N
</li>) [* H4 d/ X$ h* c+ n  t! c
<li>' f1 Q6 Z# }# [; b# a2 N5 R
这对我有用,它不会改变工作目录。谢谢。$ e# v* L. l, z" c9 e# t$ M0 p2 O
</li>
3 D* S! X6 e9 @6 W; R" J( |4 A<li>
8 S; p) d7 D/ A; R' y是的,这很完美。非常感谢!
  R0 M* e: P% d( C4 j</li>- g0 Z/ ?& D# w8 W# n' J
<li>
1 `3 S, |. X, m@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
3 P. p! l; {9 g</ul>6 F1 I! V* y# Z- Q" H
<p></p></div>1 b( {) s' c4 u# Y* f
        </div><p></p></div>
- u3 F* D7 z, C. b* Q7 c<hr>
4 z0 O7 ~& z, b; m3 L<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>
% Y+ e( x) m$ a<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>
( G7 `( k7 g+ n7 C; B8 v<p><center> </center></p>" G9 ]& b6 K" ~* E1 x  \
<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>
& I$ h0 ?- q9 C- G6 M4 B<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>
& n- W0 [! x3 U) c<div class="suo-content"><div style="text-align: right;">
! O  x5 O% W: g+ [                <div class="xControl"><i class="fa fa-caret-right"></i>
3 G: h, T5 j. Z7 N                        <span class="xTitle"></span>
( V- X2 e8 K+ U+ n5 T1 P6 q0 B  e                        相关讨论6 R; A+ g0 I5 y0 d  O* W
                        <div style="clear: both;"></div>
* I* A: `9 j: F                </div>
' E/ M2 J/ q: ^% |% {8 `# S9 V                <div class="xContent" style="display: none;"><p></p>9 ^3 r$ f) r* j7 l: B0 U6 ]5 f
<ul>+ D, e3 j' C% w( |
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
/ V1 M" ?) x4 j2 }- ?</li>
* I( {) h) B; P4 }6 G) I<li>
) }/ b1 f, _! T8 @3 c( M链接现在失效了。! b6 X  G) t: v
</li>
3 I! K+ W5 t, I1 B<li>, R. E5 o6 X( G) J. C# ]! z5 a
这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...; }9 m* e3 j; R. ?7 m& B) X; z
</li>; d6 r" u- S9 [  W0 f
</ul>9 W% _8 O8 a5 v, J
<p></p></div>, X$ H9 t2 ?1 I: Y4 O. [# ]
        </div><p></p></div>/ @6 D$ M$ ?- a" K7 ^
<hr></div>
回复

使用道具 举报

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

本版积分规则

手机版|飞雪团队

GMT+8, 2026-2-27 00:08 , Processed in 0.060291 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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