R markdown рабочий каталог в файле проекта и не в проекте - PullRequest
0 голосов
/ 04 февраля 2019

Я видел много потоков, касающихся установки рабочих каталогов в файлах уценки, но ничего, что вполне отвечало моим конкретным потребностям.

Моя команда работает со структурой общих папок для нашей работы 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 связать этот рабочий каталог с файлом.Как я могу определить, так ли это?В этой папке или в любой папке по этому пути нет проектов.

...