Могу ли я начать сеанс 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
из вашего терминала.