Как использовать относительные пути относительно каталога проекта в блокноте Rstudio?

При работе внутри проекта R мне нравится использовать относительные пути относительно корня каталога проекта. Спустя пару недель я обновил RStudio до последней версии, которая включает «R Notebooks».

Блокноты — это здорово, но опции, которые я использовал в своих документах по вязанию, больше не работают:

opts_knit$set(root.dir="../..")

Я бы хотел, чтобы пути относились к каталогу проекта, и я не хочу использовать setwd(), потому что это не даст такого же результата в интерактивном режиме и в режиме вязания. Кроме того, мне нравится иметь возможность получать исходный код всего документа Knitr несколько раз, а переход в относительный каталог setwd("..") несколько раз быстро приводит к нежелательному пути.

Как предложила Дженнифер Брайан, необходимо ли использовать пакет просто для установки относительных путей к файлам внутри проекта< /а>?


person Paul Rougieux    schedule 15.02.2017    source источник
comment
Общая мудрость заключается в том, чтобы избегать использования setwd вне консоли. Обычно я указываю пути относительно каталога проекта, и если это не удается из-за того, что я вызываю его из неправильного каталога, это моя ошибка (и ее легко исправить). Более надежное решение потребует больше работы, например, пакет или make-файл.   -  person alistaire    schedule 16.02.2017
comment
Этот вопрос касается той же проблемы: opts_knit$set(root.dir = path) не работает после обновления RStudio 1.0.44. Ответ содержит ссылку на страницу справки R_Notebook, где предлагается использовать knitr::opts_knit$set(root.dir = normalizePath("..")) в блоке установки.   -  person Paul Rougieux    schedule 16.02.2017
comment
@alistaire спасибо. Допустим, у меня есть документ Rmd в подпапке моего проекта ./docs/experiment.Rmd. Чтобы использовать пути относительно каталога проекта, мне нужно установить параметр Knitr opts_knit$set(root.dir="..") внутри файла уценки experiment.Rmd, чтобы я мог использовать пути относительно каталога проекта в этом документе. Проблема в том, что этот подход не работает с R Notebooks.   -  person Paul Rougieux    schedule 16.02.2017
comment
@Yihui Кажется, что кусок вязания, в котором находится opts_knit$set(root.dir=".."), должен называться setup, чтобы эта инструкция работала. Это нормально? Или происходит какое-то кэширование, которое препятствует выполнению первого фрагмента.   -  person Paul Rougieux    schedule 16.02.2017