2016-02-10 2 views
0

Вы знаете, как указать R двоичный код, который будет запущен Rscript?Rscript launch custom R

По умолчанию он указывает на .

$ Rscript --verbose -e 'Sys.getenv("R_HOME")' 

running 
    '/usr/lib/R/bin/R --slave --no-restore -e Sys.getenv("R_HOME")' 

[1] "/usr/lib/R" 

Я настроил альтернативы для /usr/bin/R, и может переключаться между R.

Для R:

$ update-alternatives --display R 
R - auto mode 
    link currently points to /opt/R/3.2.3/usr/lib/R/bin/R 
/opt/R/3.2.3/usr/lib/R/bin/R - priority 200 
/usr/lib/R/bin/R - priority 100 
Current 'best' version is '/opt/R/3.2.3/usr/lib/R/bin/R'. 

Для Rscript:

$ update-alternatives --display Rscript 
Rscript - auto mode 
    link currently points to /opt/R/3.2.3/usr/lib/R/bin/Rscript 
/opt/R/3.2.3/usr/lib/R/bin/Rscript - priority 200 
/usr/lib/R/bin/Rscript - priority 100 
Current 'best' version is '/opt/R/3.2.3/usr/lib/R/bin/Rscript'. 

Я не могу найти способ, как заставить Rscript запустить /usr/bin/R вместо /usr/lib/R/bin/R.


Update

@ кортик-eddelbuettel предложил использовать среду PATH. Несмотря на набор PATH, Rscript до сих пор использует /usr/lib/R/bin/R

$ env | grep PATH 
PATH=/opt/R/3.2.3/usr/lib/R/bin:/opt/python/conda/bin::/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games 

Запуск Rscript

$ Rscript --version && Rscript --verbose -e 'print("Hello")' 
    R scripting front-end version 3.2.3 (2015-12-10) 
    running 
     '/usr/lib/R/bin/R --slave --no-restore -e print("Hello")' 

    [1] "Hello" 

ответ

0

Вам нужны различные варианты Rscript от двух сборок. Я просто сделать это с помощью $PATH:

[email protected]:~$ Rscript --version 
R scripting front-end version 3.2.3 (2015-12-10) 
[email protected]:~$ Rscript-devel.sh --version 
R scripting front-end version 3.3.0 Under development (unstable) (2016-02-07 r70118) 
[email protected]:~$ 

я мог бы назвать это ничего. Я решил закончить его в .sh, как это оболочка обертка:

[email protected]:~$ cat ~/bin/Rscript-devel.sh 
#!/bin/bash 

export R_LIBS_SITE=${R_LIBS_SITE-'/usr/lib/R-devel/lib/R/library:/usr/local/lib/R/site-library:/usr/lib/R/site-library::/usr/lib/R/library'} 
export PATH="/usr/local/lib/R-devel/bin:$PATH" 
Rscript "[email protected]" 
[email protected]:~$ 

Edit: В соответствии с просьбой, хотя я не понимаю, почему вы не можете сделать это самостоятельно:

[email protected]:~$ Rscript --verbose -e '2+2' 
running 
    '/usr/lib/R/bin/R --slave --no-restore -e 2+2' 

[1] 4 
[email protected]:~$ Rscript-devel.sh --verbose -e '2+2' 
running 
    '/usr/local/lib/R-devel/lib/R/bin/R --slave --no-restore -e 2+2' 

[1] 4 
[email protected]:~$ 
+0

Можете ли вы показать вывод из '$ Rscript-devel.sh --version --verbose -e 'print (« Dirk is awesome! »)''? –

+0

Не стесняйтесь повышать или принимать, если вам это подходит .... –

+0

Не могли бы вы показать вывод '--verbose' для' Rscript-devel.sh'? –

Смежные вопросы