Отказ от ответственности: я не знаком с R
.
Из R: пути поиска:
Путь поиска библиотеки инициализируется при запуске из переменной среды R_LIBS (которая должна представлять собой список каталогов, разделенных двоеточиями, в которых находятся корни деревьев библиотек R), за которыми следуют каталоги в переменной среды R_LIBS_USER. Будут включены только каталоги, которые существуют на данный момент.
По умолчанию R_LIBS не установлен, а R_LIBS_USER установлен в каталог «R/R.version$platform-library/x.y» домашнего каталога (или «Library/R/x.y/library» для сборок CRAN macOS), для R х.у.з.
переменная среды может быть создана с помощью пакетной команды set VARIABLE_NAME=YOUR_VALUE
.
Таким образом, ваш пакетный файл, вероятно, должен быть примерно таким:
cd /d "C:\INSERT_PATH_TO_DIRECTORY_CONTAINING_script.R"
set "R_LIBS=C:\Users\username\Documents\R\R-3.5.1\library"
"C:\Program Files\R\R-3.5.1\bin\x64\Rscript.exe" script.R
Однако из соображений переносимости (скажем, коллега просит копию вашего скрипта или ваш компьютер умирает) я предлагаю поместить скрипт, R-библиотеку и пакетный файл в один каталог, скажем, C:\Users\username\Documents\R
. Пакетный файл C:\Users\username\Documents\R\script.bat
становится:
cd /d "%~dp0"
set "R_LIBS=%~dp0R-3.5.1\library"
"%PROGRAMFILES%\R\R-3.5.1\bin\x64\Rscript.exe" "%~dpn0.R"
%PROGRAMFILES%
переменная среды заменяется на полный путь к папке program files
, %~dp0
параметр заменяется на полный путь к каталог, в котором находится ваш пакетный файл, а %~dpn0
– это полный путь к пакетному файлу без расширения.
Обратите внимание, что %~dp0R-3.5.1
не является опечаткой, поскольку %~dp0
включает обратную косую черту.
Таким образом, вы можете скопировать C:\Users\username\Documents\R
в D:\Users\SOMEOTHERNAME\Documents\R
, и скрипт все равно будет работать.
Если вы создаете другую версию своего сценария, просто скопируйте пакетный файл, чтобы он имел то же имя файла, что и ваш сценарий, но расширение .bat
вместо .R
, и он должен вызывать новый сценарий - это оказалось очень удобным при отладке и распространении сценариев.
В качестве альтернативы, если вы предпочитаете устанавливать библиотеки отдельно, вы можете использовать %HOMEDRIVE%%HOMEPATH%
, который расширяется до C:\Users\username
.
Извлечение правильного пути к папке Documents
, а также пути установки R
возможно, но требует чтения реестра и, следовательно, немного сложнее.
person
Jack White
schedule
05.11.2018
.libPaths(paste("C:/Users/",Sys.getenv("USERNAME"),"/Documents/R/R-3.5.1/library",sep=""))
в начале вашего скрипта? - person Maylo   schedule 05.11.2018batch-file
... - person Aacini   schedule 05.11.2018