некорректное поведение here :: here () при выполнении сценария R из Windows диспетчера задач (а не вручную из консоли) - PullRequest
0 голосов
/ 19 июня 2020

У меня есть проект, структура которого выглядит так:

-Y: / fake_project ---.Вот --- fake_subfolder / ------ fake_script.R

fake_script.R выглядит так:

root.dpath <- here::here()
print(root.dpath)

Ожидаемое поведение таково, что Y:/fake_project печатается, как и должно быть директория, полученная из here::here() поскольку именно там находится файл .here

Такое поведение достигается, если я запускаю свой скрипт из командного файла run.bat, который выглядит так:

cmd /k C:\PROGRA~1\R\R-36~1.3/bin\Rscript.exe "Y:/fake_project/fake_subfolder/fake_script.R"

Что выводит:

 [1] "Y:/fake_project"

Однако, если я программирую автоматизированную задачу в Windows планировщике задач, результат будет другим, поскольку задача выполняет сценарий, но на выходе будет:

 [1] "C:/Windows/System32"

Автоматизированная задача имеет ту же самую команду для запуска в «Действиях» в свойствах задачи. Результаты одинаковы на машинах с серверной ОС Windows 10 и Windows.

Я хотел бы избежать жесткого кодирования любого пути в моем скрипте и использовать относительные пути, как в here()

Есть идеи, как изменить автоматическую задачу, чтобы правильно распознавать родительскую папку, используя here::here() или аналогичные функции R?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...