In RStudio/RMarkdown, how to setwd?
Solution 1
See Issue #277 and for further background, the package author's comments here
What you are looking for is the root.dir
option in knitr::opts_knit
.
The following will set the root directory for subsequent code chunks (but not this chunk):
```{r setup}
knitr::opts_knit$set(root.dir = '/tmp')
```
EDIT: RStudio 1.0.44
as of RStudio's latest release (Oct/Nov 2016), the following snippet is needed for knitr's render
default:
```{r setup}
knitr::opts_knit$set(root.dir = '/tmp')
```
see Etienne's comment about versions below.
Solution 2
Here's what I've been using, and it seems to work well when using R Projects (.Rproj
files):
knitr::opts_chunk$set(
# This should allow Rmarkdown to locate the data
root.dir = rprojroot::find_rstudio_root_file()
)
user650654
Updated on July 10, 2020Comments
-
user650654 almost 4 years
setwd
in an Rmd file in RStudio does not appear to change the directory in subsequent chunks. Is there a way to set the working directory for good?Example:
```{r} setwd("/tmp") getwd() ``` ```{r} getwd() ```
Output:
setwd("/tmp") getwd() ## [1] "/private/tmp" getwd() ## [1] "/Users/me/src"
This is on Mac OS 10.8.5 using RStudio 0.97.551, R version 3.0.2 and knitr version 1.5.
I wish to set the directory once for all subsequent chunks.
-
Etienne Low-Décarie about 10 yearsI needed to use
opts_knit
instead ofopts_chunk
-
arvi1000 about 8 yearsI also needed to use
opts_knit
-- may depend on whether one is usingrmarkdown::render
orknitr::knit
, I was using the former (which is the default for RStudio'sknit HTML
button in 2016) -
mightypile about 7 yearsThis works in RStudio 1.0.143 for linux, but ONLY in the
{r setup}...
chunk. Just calling it{r initialization}...
breaks it. -
eric_kernfeld over 6 yearsThis doesn't work for me: running this line followed by
getwd()
shows that it had no effect on the chunk working directory. Mac OS 10.11.6, R version 3.3.1, knitr version 1.17. -
Hack-R about 5 yearsWeird... I'm in RStudio Windows 1.1.456 and it seems to want
chunk
notknit
-
user63230 about 3 years+1 I still had to explicitly set this via
setwd
though, sosetwd(rprojroot::find_rstudio_root_file())
worked. Any idea why it didnt work via your way throughknitr::opts_chunk$set
?