Setting work directory in knitr using opts_chunk$set(root.dir = ...) doesn't work
knitr, r, rstudio
Solution
It is `knitr::opts_knit` instead of `knitr::opts_chunk`.
Problem
My R project is structured like a package with directories `/R`, `/vignettes`, `/data` etc. In one of my Rmd docs in `/vignettes` I source a script which in located in `/R`. Inside this script I use `read.csv()` to load a file located in `inst/extdata/`. The problem now is that by default the working directory inside the Rmd file is the directory where the file is located. Let's call it `/Users/Me/Docs/Proj/vignettes`. However in order for the R script to run the working directory needs to be the project's main directory (`/Users/Me/Docs/Proj`). I tried to change the working directory in the Rmd file using `knitr::opts_chunk$set(root.dir = normalizePath("..")`. However apparently this doesn't change the working directory since if I call `getwd()` after it the output is still `/Users/Me/Docs/Proj/vignettes` whereas `knitr::chunk_opts$get("root_dir")` returns `/Users/Me/Docs/Proj`. Here is a minimal example Rmd file: ```` ```{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' ``` ```` I am using RStudio Version 0.99.435. Here is my session Info: ``` 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 base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] htmltools_0.2.6 tools_3.2.0 yaml_2.1.13 rmarkdown_0.6.1 digest_0.6.8 ``` Any help is kindly appreciated. If you need more info post a comment to the question. Thanks in advance!