Я видел много потоков, касающихся установки рабочих каталогов в файлах уценки, но ничего, что вполне отвечало моим конкретным потребностям.
Моя команда работает со структурой общих папок для нашей работы Rstudio, которая выглядит примерно так
W:r/dev/
W:r/qat/
W:r/prod/
Эти папки (в соответствии с разработкой, проверкой качества и производством) содержат среды, между которыми мы будем переносить наши рабочие файлы (обычно dev -> qat -> prod
).
Среда, в которуюдокумент принадлежит необходимому документу.Например, документ в среде prod
должен знать, чтобы загружать и использовать сценарии в среде prod
, а не в средах dev
или qat
.
Поскольку у нас много документов в процессе разработки и мы выполняем частые миграции, для нас нецелесообразно и неразумно устанавливать среду вручную в каждом документе после его миграции.Требуется алгоритмический подход.
Это (в некоторой степени) достигается путем определения среды в преамбуле документа:
dir <- gsub(x= getwd(), pattern = "(.:/r/)(.*)",replacement = "\\1")
envir <- gsub(x= getwd(), pattern = "(.:/r/)(\\w+)/(.*)",replacement = "\\2")
Это прекрасно работает для документов типа html_document
, которыесвязанные с проектом, и документы типа html_notebook
, которые не связаны с проектом, но не для html_document
s, которые не связаны с проектом.
Есть ли алгоритмическое решение, которое будет работать для всех типов документов, независимо от их статуса в качестве элементов проекта / не-проекта?
ОБНОВЛЕНИЕ
Итак, язаметил странное поведение: у меня есть документ R Markdown в папке
W:r/dev/report/
, для которого getwd()
возвращает W:r/
при выполнении из любого чанка (это нетипично, как и у любого другогодокумент в этой папке возвращает W:r/dev/report/
в том же контексте).
Если я скопирую все содержимое из документа и вставлю его в новый документ, то этот документ теперь будет работать так, как ожидается, и в этом контексте возвращает W:r/dev/report/
.Если я удаляю исходный файл, а затем переименовываю вновь созданный файл, чтобы он имел то же имя, что и исходный, то это странное поведение повторяется (т. Е. Возвращается к возвращению W:r/
).
Это заставляет меняЯ думаю, что файл указан в каком-то месте (возможно, мошенническом проекте?), который говорит Rstudio связать этот рабочий каталог с файлом.Как я могу определить, так ли это?В этой папке или в любой папке по этому пути нет проектов.