在RStudio/RMarkdown中,如何设置?

use*_*654 36 r rstudio r-markdown

setwd在RStudio中的Rmd文件中似乎不会更改后续块中的目录.有没有办法设置工作目录好?

例:

```{r}
setwd("/tmp")
getwd()
```

```{r}
getwd()
```
Run Code Online (Sandbox Code Playgroud)

输出:

setwd("/tmp")
getwd()
## [1] "/private/tmp"

getwd()
## [1] "/Users/me/src"
Run Code Online (Sandbox Code Playgroud)

这是在Mac OS 10.8.5上使用RStudio 0.97.551,R版本3.0.2和knitr版本1.5.

我希望为所有后续块设置一次目录.

mne*_*nel 34

请参阅问题#277,有关更多背景信息,请参阅此处的软件包作者的评论

您正在寻找的是root.dir块选项.

以下将为此(及后续)代码块设置根目录

```{r setup}
opts_chunk$set(root.dir = '/tmp')
```
Run Code Online (Sandbox Code Playgroud)

编辑:RStudio 1.0.44

截至RStudio的最新版本(2016年10月/ 11月),knitr render默认需要以下片段:

```{r setup}
knitr::opts_knit$set(root.dir = '/tmp')
```
Run Code Online (Sandbox Code Playgroud)

请参阅Etienne对以下版本的评论.

  • 我需要使用`opts_knit`而不是`opts_chunk` (6认同)
  • 这对我不起作用:运行此行后跟`getwd()`表明它对块工作目录没有影响.Mac OS 10.11.6,R版本3.3.1,knitr版本1.17. (4认同)
  • 这适用于Linux的RStudio 1.0.143,但仅限于```{r setup} ...``chunk.只是称它为```{r initialization} ...```打破它. (2认同)