R интерактивный и пакетный режимы и браузер помощи

При запуске R в «пакетном режиме» для флага interactive устанавливается значение false, что предотвращает любые запросы пользователя, которые могли бы прервать процесс в контексте встроенной/пакетной настройки. Видеть:

R -e 'interactive()'

Некоторые сохраняются при использовании Rscript. Флаг также можно установить вручную с помощью пакета interactivity. Для проверки мы можем попробовать:

R -e 'install.packages("anything")

Предполагая, что зеркало CRAN еще не установлено, install.packages не будет отображать какое-либо интерактивное средство выбора зеркал, а вместо этого выдаст ошибку и завершит работу.

Однако я заметил, что команда help или ? все равно будет работать. Например, приведенная ниже команда покажет браузер справки, и она не продолжится, пока я не нажму q.

R -e 'help(lm); 1+2'

Однако при отправке вывода в файл интерактивная подсказка не отображается, а просто выводится полный справочный документ:

R -e 'help(lm); 1+2' > output.txt

Теперь я немного запутался в том, что на самом деле происходит при использовании help. Почему вы получаете интерактивный браузер справки, даже если R работает в пакетном режиме? Это особенность R или интерфейса Debian/Ubuntu? Существует ли риск того, что R перестанет отвечать на запросы, когда функция help вызывается внутри, т. е. Rserve, RInside, JRI и т. д., из-за того, что R ожидает использования ввода?


person Jeroen    schedule 23.10.2012    source источник


Ответы (1)


help на самом деле порождает новый процесс, пейджер, который похож на «меньше»:

> help(lm); 1+2
[1]+  Stopped                 R -e 'help(lm); 1+2'
$ ps
  PID TTY          TIME CMD
27735 pts/6    00:00:00 bash
31607 pts/6    00:00:00 R
31615 pts/6    00:00:00 sh
31616 pts/6    00:00:00 pager
31617 pts/6    00:00:00 ps
person Arcymag    schedule 23.10.2012