У меня есть скрипт, который загружает данные, обрабатывает их и сохраняет обработанные данные. Я запускаю его вручную без проблем, но он не работает с Rscript. Он использует пакет data.table, и Rscript не может его найти. Я попробовал решение здесь, но получил следующее сообщение об ошибке:
Error in eval(expr, envir, enclos) : could not find function ".getNamespace"
In addition: Warning message: package ‘data.table’ was built under R version 3.1.1 Error : unable to load R code in package ‘chron’
Error: package/namespace load failed for ‘data.table’
Execution halted
Скрипт выглядит так:
#!/usr/local/bin/Rscript
args = commandArgs(trailingOnly = TRUE) # Take arguments from command line
library.path <- '/home/zack/R/x86_64-redhat-linux-gnu-library/3.1'
library('data.table', lib.loc = library.path)
Этот код после сбоя с библиотекой (data.table). Но я могу нормально загрузить data.table, и поэтому остальная часть скрипта работает, если я делаю это вручную. Команда, которую я отправляю в bash:
nohup /usr/local/bin/Rscript --vanilla <path to script> <args> &
Информация о сеансе:
> sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-redhat-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
какой Rscript:
/usr/local/bin/Rscript
/usr/local/bin/R загружает data.table нормально, когда он вызывается в интерактивном сеансе.
--vanilla
не читает R-профиль пользователя и.Renviron
файл. Если вы где-то в этих файлах определили путь к своей пользовательской библиотеке, процесс R, запущенный с--vanilla
, не найдет библиотеку и установленные в ней пакеты. - person Stibu   schedule 06.02.2016Sys.info()[c("user","effective_user")]
- person jangorecki   schedule 06.02.2016.libPaths()
иrownames(installed.packages(lib.loc = ...))
- person jangorecki   schedule 01.03.2016