飞雪团队

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

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

[复制链接]

8590

主题

8678

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
28100
发表于 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>
! s8 |' @7 o3 p  w; S<div id="fc">  u2 R" B( n$ W' f( y' Z# x1 i
<p><center> </center></p>$ O2 Z! u: ]( T; a' Z* h" x. }
<p>我正在使用 RStudio 的 knit HTMl 函数来输出一些演示文稿。但它总是将文件输出到我当前的工作目录。如何将其输出到另一个目录,以便我的目录干净,只有原始 .rmd 文件?</p>
  p' x% b+ B: C& |<div class="suo-content"><div style="text-align: right;">/ ?  {5 w+ C6 G6 p
                <div class="xControl"><i class="fa fa-caret-right"></i>9 i0 P1 Q2 B/ @9 L$ D' J
                        <span class="xTitle"></span> 0 Q4 s5 g. I3 o' U! i; M
                        相关讨论
. g  X3 X2 q  J  P. u% y3 N/ m- A                        <div style="clear: both;"></div>) h0 F5 V& _" @5 Q3 J9 Q- Q$ N# n
                </div>
, o$ ?8 k& |2 P  R* o                <div class="xContent" style="display: none;"><p></p>, L" R- o/ `$ I/ d
<ul>! p/ @* I* @) d. u% U
<li>您需要使用 knit HTML 按钮吗?如果没有,你可以做 <wyn>rmarkdown::render('my.Rmd', output_file = 'folder/my.html')</wyn>
# _9 }/ C4 P  z6 A9 V</li>
/ W. @/ p& A5 m$ Z<li>' v& j4 G- C, H3 N
另见:github.com/ropenscilabs/ezknitr</li>, A) q$ X) x8 |6 J
</ul>
0 l3 D1 Q, N# F9 B7 ]<p></p></div>
! @1 a7 U) F7 \% g- w% D+ K        </div><p></p></div>& C: l; e+ ^9 {. u. T3 s  n2 l
<hr>2 }8 I! |% l6 ]7 t
<p>Rmarkdown 中提到的将输出文件定向到目录中的技巧对我有用。</p># d7 h: c* A5 i  p8 _+ j
<p>示例:将以下内容添加到 YAML 前导作为顶级项,以将输出写入 <wyn>pdf/</wyn> 子目录:</p>
- y3 g5 Q4 d2 f' Y% U& p, q/ U<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 G$ c/ S# }8 \( @# I; F' K  rmarkdown::render(inputFile, encoding = encoding, output_dir ="pdf") })</div></td></tr></tbody></table></div>9 S/ J/ d. m4 S6 U  A7 L
<div class="suo-content"><div style="text-align: right;">
. `! [5 }) Z1 m6 R1 _3 N                <div class="xControl"><i class="fa fa-caret-right"></i>4 G6 P1 t* j* t$ F
                        <span class="xTitle"></span> " }# F& u' L; J7 G
                        相关讨论
6 @& ^* ?# W, ^7 e6 Y1 T                        <div style="clear: both;"></div>1 p8 ~$ x# _+ K; |4 |
                </div>
. _$ M2 r) \, a/ w: V# ~, @                <div class="xContent" style="display: none;"><p></p>
0 d! H1 V3 ^% U' F# E2 F) @+ p<ul>
. Q3 w  j/ c& s6 x& V) e. r<li>
3 V/ ~% F2 C+ ~% v9 y这会以任何方式改变工作目录吗?我刚刚在我的prolog中添加了一个类似的片段(指定 <wyn>output_file</wyn>),但是当我通过编织按钮编织文档时,不知何故不再找到某些对象。当我在prolog中注释掉新行时,一切正常。
2 V$ z1 u! u+ z/ @$ f1 Y; B0 R% }</li>8 \- T  h: t8 O; Z( j; [6 ^
<li>7 }/ t; I4 D8 N% H+ s2 q
@stats-hb:我不知道,但是您可以使用包含显示 <wyn>getwd()</wyn> 的块的文档对其进行测试。* v4 ^$ n* B& }9 c8 W6 Z0 }
</li>2 A; B- d% J8 B7 W) U) J
<li>
/ ?) V/ G/ A( ^# Q. P+ u这对我有用,它不会改变工作目录。谢谢。6 H6 M. M+ n0 b
</li>
2 F0 b# @, ]( ~# z! \% \<li>
1 }7 ^  V) C% B( O. x是的,这很完美。非常感谢!
1 z' n6 P0 M& Y5 m- S# d  U, n$ h</li>
2 ^! p0 q$ T2 e<li>
, E, g$ m, P0 D2 J@stats-hb 似乎它使用了 Knitr 默认值,其中 knit 目录是 .rmd 所在的位置,即使您使用 knit 按钮旁边的下拉菜单更改了 knit 目录也是如此。我将 <wyn>knit_root_dir = rprojroot::find_rstudio_root_file()</wyn> 添加到 <wyn>render</wyn> 调用中,它可以将 knit 目录设置为项目目录</li>
& |+ h5 u- q: Z7 S' ~. t! n</ul>' J9 V6 L& }1 I( }* T& k' X
<p></p></div>/ z8 P4 H  x2 x# ]5 \4 Z
        </div><p></p></div>
( b0 d+ C1 L7 C% f<hr>% a; G$ t/ ^9 L; T  X/ B
<p>正如 Eric 在评论中指出的那样,如果您愿意放弃 Knit HTML 按钮的便利性(它会生成与您的 <wyn>.Rmd</wyn> 一起存在的 HTML 文件),您可以直接调用 <wyn>rmarkdown::render</wyn>。</p>+ ]  ~% r0 c8 t9 m. m
<p>然而,如果你真的需要自定义你的工作流程,你可以覆盖 Knit HTML 按钮来运行你通过 <wyn>rstudio.markdownToHTML</wyn> 选项运行的任何命令。此命令可以使用特定选项(例如输出目录)调用 rmarkdown 并执行其他预处理或后处理任务。此处的文档:</p>6 t3 q4 V9 J, [
<p><center> </center></p>
; S% G" @( I$ W9 Y" Z<p>https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering</p>+ W( |3 Z( \8 R6 ^0 U2 N) Q
<p>请注意,设置 <wyn>rstudio.markdownToHTML</wyn> 选项将关闭 RStudio 中一些较新的 RMarkdown V2 集成功能,因为 RStudio 将不再能够推断正在使用什么引擎来呈现文档。 </p>$ w4 j( v. t5 E5 c) f5 E2 i
<div class="suo-content"><div style="text-align: right;">
4 y% y9 N# N  u. e0 ?9 f! c                <div class="xControl"><i class="fa fa-caret-right"></i>
" D0 c# L9 c; [6 ~$ v                        <span class="xTitle"></span> # @* O" u2 X# a9 [
                        相关讨论' n; ^1 `+ _# d" e  Y: y! c
                        <div style="clear: both;"></div>
8 Q9 _7 l$ t/ q0 h& z4 x4 v3 E                </div>+ M- Q( P9 q5 h( u0 m; ?
                <div class="xContent" style="display: none;"><p></p>* F6 w6 J- S" l7 s- _! ~7 K2 g
<ul>3 F/ q8 K0 v7 i' C8 [2 x
<li>我仍在为此苦苦挣扎(试图让所有中间/结果文件转到 <wyn>/output/</wyn>,我很想使用 RStudio 按钮。你能提供一个 MWE 吗?不幸的是,上面的 rstudio 文档链接是付费墙或其他东西.
) {$ l) Y7 O& w+ G: T4 D$ N: V+ y</li>
1 _: v7 C" ?' C9 e; s<li>
0 {# X- K" y7 q: C链接现在失效了。% ^0 P4 S9 F, q
</li>9 x0 @( L$ i9 e' }$ r: C" M
<li>
6 W1 N4 h  [" b4 M( J这里是存档页面:web.archive.org/web/20150920182851/https://support.rstudio.c??om/...7 I5 ~( z7 p: l+ V9 k6 s1 C
</li>* x5 e# y. e# \4 i
</ul>% C: l: h) ^1 L6 Z
<p></p></div>
. q6 }/ P( {3 n4 h. K. n( G  X        </div><p></p></div>, u3 d& W; B' ^" F9 \
<hr></div>
回复

使用道具 举报

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

本版积分规则

手机版|飞雪团队

GMT+8, 2026-4-30 09:36 , Processed in 0.064950 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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