Могу ли я начать сеанс Rcmdr из оболочки Unix?

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

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

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

library(Rcmdr);
Commander();

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

Кажется невозможным "создать исходный файл из командной строки, но запустить в интерактивном режиме" в R. Кроме того, кажется, что есть параметры командной строки, которые игнорируют глобальный профиль и профиль пользователя, но не позволяют указать пользовательский профиль, такой как R --profile-custom ./.Rprofile2

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

1 ответ

Решение

Работая на машине с Ubuntu, я смог воспользоваться советом Дирка в этом сообщении:

nathan@nathan-laptop:~/tmp$ cat rcommander.r 
#!/bin/bash 
r -lRcmdr -e'while(TRUE) Commander();'  


nathan@nathan-laptop:~/tmp$ cat rcommander2.r 
#!/bin/bash 
Rscript --default-packages=Rcmdr -e 'while(TRUE) Commander();'

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

Другие вопросы по тегам