Вызов команды R help() из терминала DOS

Я хочу вызвать R-help из терминала DOS. Мои попытки включают:

R.exe -e "help(matrix)"

Rscript.exe -e "help(matrix)"

и Т. Д.

Результаты все те же, проводник открывается, но не находит файл. Терминал dos не показывает ошибок, только:

> help('matrix')
starting httpd help server ... done

Однако с Rgui команды help(matrix) работают нормально, что наводит меня на мысль, что сервер справки httpd дает сбой. Любые идеи?


person Steve    schedule 01.03.2011    source источник
comment
Я не могу воспроизвести вашу ошибку в Windows 7 с помощью R 2.12.1. Любая из ваших команд отлично работает на моем компьютере и отображает файл справки в браузере (с использованием Mozilla Firefox). Пожалуйста, добавьте подробности: какая версия R, какая версия Windows, какой браузер (я полагаю, Internet Explorer), ...   -  person Joris Meys    schedule 01.03.2011
comment
@Joris Я могу воспроизвести это! Возможно, вы тоже могли бы дать свою сессиюInfo !!   -  person David Heffernan    schedule 01.03.2011
comment
@David: Проводник открывается вместе с вами, но не дает файл, или R просто открывается и закрывается (что означает, что вам нужно установить options(help_type='html') в файле Rprofile.site)   -  person Joris Meys    schedule 01.03.2011
comment
@Joris Это не проводник, это Firefox, хотя это не имеет значения. R запускается, обрабатывает команду, указанную -e, и затем завершает работу. У меня нет файла Rprofile.site, это полный ванильный R. options(help_type) это html. Знаете ли вы о сервере R httpd и о том, что он работает только в том случае, если запущен процесс R?   -  person David Heffernan    schedule 01.03.2011
comment
@Joris Я не имею в виду --vanilla, я имею в виду, что R был установлен и никакие конфигурации не менялись. По умолчанию для параметров (help_type) используется html. Я только что установил R 2.12.2.   -  person David Heffernan    schedule 01.03.2011
comment
@ Дэвид, ну, я установил R и не изменил конфигурации. Итак, мы запускаем один и тот же. С той разницей, что я не могу воспроизвести, а вы, видимо, можете.   -  person Joris Meys    schedule 01.03.2011
comment
@Joris Вы видите текст, запускающий сервер справки httpd ... сделанный на консоли R при первом запуске help?   -  person David Heffernan    schedule 01.03.2011
comment
@Джорис, я думаю, тебе нужно немного успокоиться. Вы, кажется, разгорячились. Я знаю, что ты знающий. Вот почему трудно понять, почему наши понимания не совпадают. Я использую netstat -a | grep LISTENING, чтобы определить, когда работает сервер R httpd. Он начинает прослушивание при первом вызове help() и прекращает прослушивание, когда процесс R закрывается. Я вижу URL-адрес http://127.0.0.1:17844/library/base/html/matrix.html, который соответствует порту, показанному netstat. Возможно, ваш R синхронно открывает браузер?   -  person David Heffernan    schedule 01.03.2011
comment
@Joris Мой компьютер — современная 64-битная 8-ядерная машина. Я попробовал R --vanilla -e "options(help_type='html');help(matrix)" перед тем, как проголосовать против. Я не понимаю необходимости враждебности. Я думаю, вам будет лучше, если вы сохраните вежливость. Возможно, я ошибаюсь. Возможно, вы ошибаетесь. Возможно, мы оба правы, но не увидели недоразумения. Не надо меня оскорблять и не надо кричать.   -  person David Heffernan    schedule 01.03.2011
comment
@ Дэвид: я уже прибрался. Но я все равно не понимаю. Проверил на i7 здесь: работает. На старом: работает. Никак не могу воспроизвести. Очевидно, он держит мой R открытым немного дольше, чем ваш, или мой браузер работает быстрее?   -  person Joris Meys    schedule 01.03.2011
comment
@Joris Джорис, я согласен, это вполне может быть связано со временем.   -  person David Heffernan    schedule 01.03.2011
comment
@David: извините за бурную дискуссию. Сегодня не мой день, я немного обидчив. Хотя не должен был позволять этому взять верх надо мной. -- этот комментарий через некоторое время самоуничтожится.   -  person Joris Meys    schedule 01.03.2011


Ответы (1)


Проблема в том, что процесс R, который запускает сервер httpd, завершается до того, как он успевает обслужить контент.

Вам нужно будет найти способ поддерживать процесс R в рабочем состоянии до тех пор, пока он не выполнит то, что вам нужно, или запустить сервер R httpd в режиме службы/демона, если это действительно возможно.

Например, следующий код немного поддержит процесс R, чтобы он мог завершить обработку http-запроса:

R.exe -e "help(matrix); Sys.sleep(2)"

Я не могу найти очевидный способ заставить сервер R httpd работать в качестве службы/демона, но на самом деле я не эксперт. Возможно, кто-то еще знает, как это сделать.

person David Heffernan    schedule 01.03.2011
comment
help правильно работает в командной строке Linux, не нуждаясь в каких-либо средствах http (если только они не используются за кулисами без моего ведома). Так что, если это так, то должен быть способ заставить R делать то же самое в командной строке Windows. - person Ari B. Friedman; 01.03.2011
comment
@gsk3 OP работает под управлением Windows. Как я уже сказал, Windows запускает собственный сервер httpd для предоставления справки в браузере. Я не знаю, как это работает в Linux. - person David Heffernan; 01.03.2011
comment
help('matrix') из командной строки у меня отлично работает. Использование Chrome в качестве браузера по умолчанию. - person Sacha Epskamp; 01.03.2011
comment
@Sacha Повторяю, это работает, когда процесс R не запущен? Это проблема, с которой сталкивается OP. - person David Heffernan; 01.03.2011
comment
@Sacha: мы не говорим здесь о командной строке в R. Мы говорим о приглашении DOS (cmd) в Windows ... - person Joris Meys; 01.03.2011
comment
@Joris Я могу воспроизвести поведение OP, о котором сообщается. То, что вы не можете, не означает, что и ОП, и я воображаем это. - person David Heffernan; 01.03.2011
comment
@David: Затем добавьте спецификации: какая версия R, какие окна, какой браузер (я полагаю, это будет Internet Explorer) ... Я считаю, что у OP есть проблема, я просто не согласен, что это сервер httpd как Я могу выполнить обе команды с отличным результатом. - person Joris Meys; 01.03.2011
comment
@Joris R.exe -e "help(matrix)" приводит к запуску и немедленному завершению процесса R! У вас настроен R для использования статического HTML или для его создания по запросу? - person David Heffernan; 01.03.2011
comment
Пробовал решение R.exe -e help(matrix); Sys.sleep(2), и это сработало. Я использую R-2.12.1 и IE 7.0.6002. Нет статической помощи. - person Steve; 01.03.2011