2016-02-02 2 views
1

Я хочу запустить Rcmdr как команду из bash (или любой оболочки unix), возможно, как псевдоним. R принимает аргумент CMD, и я также могу подключить скрипт с помощью <. Я бы хотел, чтобы консоль R оставалась открытой, и был запущен интерактивный сеанс RCommander (Rcmdr - популярный графический интерфейс для R, для любых новичков, читающих вместе, и кажется, что вы запускаете R, введите библиотеку (Rcmdr), а затем Commander(), чтобы запустить его).Можно ли запустить сеанс Rcmdr из оболочки unix?

Я знаю, как добавить Rcmdr в свой профиль, и он всегда запускается, если я включаю библиотеку (Rcmdr) в свой .Rprofile на моей рабочей станции Linux.

Если я труба мой вход в с <, этот скрипт работает до того момента, когда он говорит, что командир GUI запускается только в интерактивных сессий:

library(Rcmdr); 
Commander(); 

Однако, если я бегу R CMD BATCH ./rcommander.r это только начинается и немедленно отключается, вероятно, давая мне некоторое предупреждение об интерактивных сеансах, которые я не видел, потому что CMD BATCH помещает R в неинтерактивный режим и поэтому бесполезен для «введения» Rcmdr в интерактивную сессию R.

Невозможно «создать файл в командной строке, но запустить интерактивно» в R. Также представляется, что есть опции командной строки, чтобы игнорировать глобальный и пользовательский профиль, но не указывать настраиваемый профиль, например R --profile-custom ./.Rprofile2

Либо я хотел бы указать профиль, который означает «Прямо сейчас я хочу запустить и использовать RCmdr» и все еще иметь возможность запускать R без него.

+0

related: http://stackoverflow.com/questions/10602900/running-r-scripts-or-commands-with-interpretor-in-unix-for-unix-layman –

+0

также связанные: http: // stackoverflow. com/questions/8737046/switch-r-script-from-non-interactive-to-interactive –

+0

Я не понимаю, почему сообщение предупреждения неясно. Режим BATCH не является интерактивным. –

ответ

1

Работа на машине Ubuntu здесь, я был в состоянии использовать рекомендации, которые давали Dirk в this mailing list post:

[email protected]:~/tmp$ cat rcommander.r 
#!/bin/bash 
r -lRcmdr -e'while(TRUE) Commander();' 


[email protected]:~/tmp$ cat rcommander2.r 
#!/bin/bash 
Rscript --default-packages=Rcmdr -e 'while(TRUE) Commander();' 

Первый скрипт использует littler пакет Дирка, доступный на CRAN, а во втором стандартный Rscript исполняемый файл. Как уже отмечалось, вы можете убить процесс с ctrl + c с вашего терминала.

+0

Если вы запустили это с нормальной библиотекой 'R', как 'R -e '(« Rcmdr »); while (TRUE) Commander(); '' он будет спамить бесконечно новые окна R Commander ._. – SigmaSoldier