相关疑难解决方法(0)

使用opts_chunk $ set(root.dir = ...)在knitr中设置工作目录不起作用

我R项目的结构类似于目录包/R,/vignettes,/data等.在我的文档RMD中的一个/vignettes我来源,在位于脚本/R.在这个脚本里面我read.csv()用来加载一个位于的文件inst/extdata/.
现在的问题是,默认情况下,Rmd文件中的工作目录是文件所在的目录.我们称之为/Users/Me/Docs/Proj/vignettes.但是为了让R脚本运行工作目录,需要成为项目的主目录(/Users/Me/Docs/Proj).
我尝试使用更改Rmd文件中的工作目录knitr::opts_chunk$set(root.dir = normalizePath("..").但显然这并没有改变工作目录,因为如果我把getwd()它后输出仍/Users/Me/Docs/Proj/vignettesknitr::chunk_opts$get("root_dir")回报/Users/Me/Docs/Proj.

这是一个最小的示例Rmd文件:

```{r}
getwd()  # returns 'Users/Me/Docs/Proj/vignettes'
knitr::opts_chunk$set(root.dir = normalizePath(".."))  # should change the working directory to 'Users/Me/Docs/Proj'
getwd()  # again returns 'Users/Me/Docs/Proj/vignettes'
knitr::opts_chunk$get("root.dir")  # returns 'Users/Me/Docs/Proj'
```
Run Code Online (Sandbox Code Playgroud)

我使用的是RStudio版本0.99.435.这是我的会议信息:

R version 3.2.0 (2015-04-16)  
Platform: x86_64-apple-darwin14.3.0 (64-bit)  
Running under: OS X 10.10.3 (Yosemite)  

locale:
[1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8

attached …
Run Code Online (Sandbox Code Playgroud)

r rstudio knitr

22
推荐指数
4
解决办法
1万
查看次数

标签 统计

knitr ×1

r ×1

rstudio ×1