2013-06-04 21 views
7

Do budowy niektórych usług internetowych z R, zwykle używam RApache, ale chcę rzucić okiem na Shiny, aby zobaczyć, co może zrobić. Problem polega na tym, że w tej sytuacji, w której używam go, nie mam dostępnego serwera, na którym mogę uruchamiać R &, ani też nie mogę przesyłać danych do innego komputera, na którym działa. Mam tylko pulpit i chcę pokazać aplikację Shiny innym użytkownikom bez konieczności instalowania R na ich komputerach i bez kłopotania IT o tej instalacji.błyszczący z przenośnym R?

Stąd moje pytanie. Czy możliwe jest zainstalowanie R portable - http://sourceforge.net/projects/rportable/files/R-Portable/ na współużytkowanym dysku, który jest współdzielony z kolegami i czy aplikacja Shiny może współpracować z przenośną wersją R. Jeśli jest to możliwe, czy ktoś go wypróbował i jest skłonny udostępnić część swojego kodu, aby udowodnić, że działa?

+0

myślę to bardziej pytanie do administratora niż wymiany stosu jako jego instalacji oprogramowania, a nie kodowania – Simkill

+0

Nie jestem zainteresowany o instalacji oprogramowania. Że wiem, jak to zrobić. Interesuje mnie tylko to, jak Shiny wie, z kim się komunikować. – jwijffels

+0

Robię to często w pracy. Zainstalowałem biblioteki R + na serwerze plików i udostępniłem mapę z plikami ui.r en server.R również za pośrednictwem serwera plików. – JT85

Odpowiedz

3

To powinno działać dobrze, zakładając, że możesz mieć konfigurację R-Portable jako przenośną bibliotekę pakietów. Shiny nie uruchamia R, uruchamiasz R, a następnie ładujesz i uruchamiasz swoją Błyszczącą aplikację (używając shiny::runApp()), a następnie przeglądarka i proces R komunikują się za pomocą TCP.

Jeśli twoje aplikacje nie muszą być prywatne, możesz również złożyć wniosek o konto na Shiny hosting RStudio. Jest bezpłatny w wersji beta. https://rstudio.wufoo.com/forms/shiny-server-beta-program/

+0

Świetnie. Dzięki za potwierdzenie. Podam próbę konfiguracji R-portable. – jwijffels

+0

Błyszczące działa i domyślnie nasłuchuje na porcie 8100, ale nie widzę, czy jest to tylko na localhost lub na wszystkich interfejsach. Zakładając, że * może * słuchać na zewnętrznych interfejsach, wystarczy go uruchomić i podać adres URL każdemu, kto chce zobaczyć twoją aplikację. Porty inne niż port 80 mogą być problemem z zaporami sieciowymi, a port 80 wymaga uprawnień roota (przynajmniej na Linuksie), więc będziesz uruchamiał R jako root ... – Spacedman

+0

Hmm, próbowałem na R-portable z biblioteką (błyszczący); runExample ("01_hello"); ale otrzymuję: "Błąd w as.environment (x): nieprawidłowy obiekt dla" as.environment "", spowodowany przez cacheContext <- CacheContext $ new(). Jakieś wskazówki dotyczące przyczyny tego błędu? Uruchomienie go z niemobilnym R działa jednak ... więc jaka jest różnica między 2? – jwijffels

2

OS: Windows 7 - 64 bit

Postępuj zgodnie z instrukcjami, jak wyjaśniono w link poniżej, z wyjątkiem utworzyć pojedynczy plik wsadowy do uruchomienia błyszczącą aplikację, ponieważ propozycja, aby uruchomić przeglądarkę internetową w tym łączem internetowym nie działa (przeglądarka otwiera się bez zawartości aplikacji), przynajmniej dla mnie.

Ten skrypt wsadowy znajdzie NIEUŻYWANY nieuprzywilejowanych PORT i używa go, aby otworzyć lokalną aplikację internetową (Portable R Shiny App) przy użyciu przenośnego Google Chrome przeglądarkę internetową z dysku flash USB. W powyższym odsyłaczu do strony internetowej propozycja utworzenia osobnych runShinyApp.R i run.bat jest skondensowana do pojedynczego pliku wsadowego, jak podano poniżej.

@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 
Powiązane problemy