R интерактивный и пакетный режим и браузер heIp
При запуске R в "пакетном режиме", interactive
Параметр flag имеет значение false, что предотвращает любые пользовательские запросы, которые могут прервать процесс в контексте встроенной / пакетной настройки. Увидеть:
R -e 'interactive()'
Некоторые держит при использовании Rscript
, Флаг также может быть установлен вручную с помощью пакета интерактивности. Чтобы проверить, мы можем попробовать:
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 ожидает ввода?
1 ответ
На самом деле help порождает новый процесс, пейджер, который похож на "less":
> 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