I use this code to set file location as path/working directory automatically:
```{r,echo=FALSE, warning=FALSE, message=FALSE}
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
```
However, sometimes when I pres Ctrl+Alt+R to run all chunks, there is an error and when I run this specific chunk (above) it starts working. This happens in a rare cases but its problem for me. Do you see any reason/solution?
Error in setwd(dirname(rstudioapi::getActiveDocumentContext()$path)) :
cannot change working directory
Error in setwd(dirname(rstudioapi::getActiveDocumentContext()$path)) :
cannot change working directory
20.
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
19.
eval(expr, envir, enclos)
18.
eval(expr, envir, enclos)
17.
withVisible(eval(expr, envir, enclos))
16.
withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler,
error = eHandler, message = mHandler)
15.
handle(ev <- withCallingHandlers(withVisible(eval(expr, envir,
enclos)), warning = wHandler, error = eHandler, message = mHandler))
14.
timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr,
envir, enclos)), warning = wHandler, error = eHandler, message = mHandler)))
13.
evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos,
debug = debug, last = i == length(out), use_try = stop_on_error !=
2L, keep_warning = keep_warning, keep_message = keep_message,
output_handler = output_handler, include_timing = include_timing)
12.
evaluate::evaluate(...)
11.
evaluate(code, envir = env, new_device = FALSE, keep_warning = !isFALSE(options$warning),
keep_message = !isFALSE(options$message), stop_on_error = if (is.numeric(options$error)) options$error else {
if (options$error && options$include)
0L ...
10.
in_dir(input_dir(), evaluate(code, envir = env, new_device = FALSE,
keep_warning = !isFALSE(options$warning), keep_message = !isFALSE(options$message),
stop_on_error = if (is.numeric(options$error)) options$error else {
if (options$error && options$include) ...
9.
eng_r(options)
8.
block_exec(params)
7.
call_block(x)
6.
process_group.block(group)
5.
process_group(group)
4.
withCallingHandlers(if (tangle) process_tangle(group) else process_group(group),
error = function(e) {
setwd(wd)
cat(res, sep = "\n", file = output %n% "") ...
3.
process_file(text, output)
2.
knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
1.
rmarkdown::render("TPR.rmd", output_file = "HTML_doc")