2013-06-04 1 views
7

Для создания некоторых веб-сервисов с R, я обычно использую RApache, но я хочу посмотреть на Shiny, чтобы посмотреть, что он может сделать. Проблема в том, что для этой ситуации, когда я предполагаю, что она будет использоваться, у меня нет сервера, где я могу запустить R &, а также не могу передавать данные на другой компьютер, где он работает. У меня есть только рабочий стол, и я хочу показать приложение «Блестящее» другим пользователям, не устанавливая R на своих рабочих столах и не беспокоясь об этой установке.блестящий с портативным R?

Отсюда мой вопрос. Возможно ли, что я установил R portable - http://sourceforge.net/projects/rportable/files/R-Portable/ на общий диск, который делится с коллегами и что приложение Shiny может взаимодействовать с портативной версией R. Если это возможно, кто-то попробовал его и готов поделиться некоторыми его кодами, чтобы доказать, что он работает?

+0

Я думаю, что это больше вопрос для суперпользователя, чем обмен стека, как его установки программного обеспечения, а не кодирования – Simkill

+0

Я не заинтересован об установке программного обеспечения. Я знаю, как это сделать. Меня просто интересует, как Блестящий знает, с каким R общаться. – jwijffels

+0

Я часто это делаю на работе. Я установил библиотеки R + на файловый сервер и поделился картой с файлами ui.r en server.R через файловый сервер. – JT85

ответ

3

Это должно работать нормально, предполагая, что вы можете настроить R-Portable на портативную библиотеку пакетов. Shiny не запускает R, вы запускаете R, а затем оттуда загружаете и запускаете свое приложение Shiny (используя shiny::runApp()), а затем браузер и R-процесс обмениваются данными через TCP.

Если ваши приложения не обязательно должны быть частными, вы также можете обратиться за учетной записью на собственный Shiny-хостинг RStudio. Это бесплатно во время бета-тестирования. https://rstudio.wufoo.com/forms/shiny-server-beta-program/

+0

Отлично. Спасибо за подтверждение. Я дам R-портативную установку попробовать. – jwijffels

+0

блестящий запуск и прослушивание по умолчанию на порту 8100, но я не вижу его только на локальном хосте или на всех интерфейсах. Предполагая, что он * может * прослушивать внешние интерфейсы, вам просто нужно запустить его и указать URL-адрес всем, кого вы хотите видеть в своем приложении. Однако порты, отличные от порта 80, могут быть проблемой для межсетевых экранов пользователей, а для порта 80 требуются привилегии root (по крайней мере, по Linux), поэтому вы будете запускать R как root ... – Spacedman

+0

Хм, я попробовал R-портативный с библиотекой (блестящая); runExample ("01_hello"); но я получаю: «Ошибка в as.environment (x): недопустимый объект для« as.environment »», вызванный cacheContext <- CacheContext $ new(). Любые подсказки о том, что вызывает эту ошибку? Запуск его с не-портативными R работает, однако ... так в чем же разница между 2? – jwijffels

2

ОС: Windows 7 - 64 бит

Выполните действия, как описано в ссылке ниже, за исключением создания одного пакетного файла для запуска блестящие приложение, потому что предложение начать веб-браузер в этом веб-ссылку не работает (веб-браузер открывается без содержимого приложения), по крайней мере для меня.

Этот пакетный сценарий находит НЕИСПОЛЬЗОВАННОЕ Непривилегированные PORT и использует его, чтобы открыть локальный веб-приложение (Portable R Shiny App), используя портативный Google Chrome веб-браузер с флэш-накопителя USB. В приведенной выше веб-ссылке предложение автора создать отдельные runShinyApp.R и run.bat сводится к одному пакетному файлу, как указано ниже.

@echo off 
    title 'My Shiny APP' 

    setlocal ENABLEDELAYEDEXPANSION 

    for /l %%X in (1025,1,65535) do ( 
     netstat -o -n -a | findstr :%%X 
     if !ERRORLEVEL! neq 0 ( 
      set avail_port=%%X 
      goto eof 
     ) 
    ) 

    :eof 
    SET ROPTS=--no-save --no-environ --no-init-file --no-restore --no-Rconsole 

    start "" ".\GoogleChromePortable\App/Chrome-bin/chrome.exe" "http://localhost:!avail_port!/" 

    R-Portable\App\R-Portable\bin\Rscript.exe %ROPTS% -e "require(methods); shiny::runApp('./shiny', launch.browser = FALSE, port = !avail_port!)" 1> ShinyAppOut.log 2> ShinyAppMsg.log