2013-06-04 30 views
7

R ile bazı web servisleri oluşturmak için normalde RApache kullanıyorum ama ne yapabildiğini görmek için Shiny'a bir göz atmak istiyorum. Sorun, kullanmak istediğimi düşündüğüm bu durumda, R & parlak çalışabileceğim bir sunucuya sahip olmadığım veya verileri çalıştığı başka bir makineye aktaramam. Sadece bir masaüstüm var ve Shiny uygulamasını diğer kullanıcılara masaüstlerinde R yüklemesine gerek kalmadan ve bu kurulum hakkında BT'yi rahatsız etmeden göstermek istiyorum.taşınabilir R ile parlak?

Bu yüzden benim sorum. R taşınabilir - http://sourceforge.net/projects/rportable/files/R-Portable/'u iş arkadaşlarınızla paylaşılan ve Shiny uygulamasının taşınabilir R sürümü ile etkileşime girebileceği paylaşılan bir sürücüye yüklüyorum. Mümkünse, birileri bunu denedi ve çalıştığını kanıtlamak için bazı kodlarını paylaşmaya istekli mi?

+0

Ben ben yazılım yüklemesi hakkında ilgilenmiyorum – Simkill

+0

kodlama, onun yazılım yüklemesi olarak yığını alışverişi daha süper için bu daha bir sorum düşünüyorum. Bunu nasıl yapacağımı biliyorum. Sadece Shiny'in hangi R ile iletişim kurduğunu bilmesiyle ilgileniyorum. – jwijffels

+0

Bunu sık sık iş başında yapıyorum. R + kütüphanelerini dosya sunucusuna yükledim ve haritayı dosya sunucusu üzerinden ui.r en server.R dosyalarıyla paylaştım. – JT85

cevap

3

R-Portable kurulumunuzun taşınabilir bir paket kitaplığına sahip olmasını sağlayabileceğinizi kabul edersiniz. Shiny R'yi başlatmaz, R'yi çalıştırırsınız ve oradan yükler ve Shiny uygulamasını başlatır (shiny::runApp()'u kullanarak) ve daha sonra tarayıcı ve R işlemi TCP kullanılarak iletişim kurar.

Uygulamalarınızın özel olması gerekmiyorsa, RStudio'nun kendi Shiny sunucusundaki bir hesaba da başvurabilirsiniz. Beta sürümünde ücretsizdir. https://rstudio.wufoo.com/forms/shiny-server-beta-program/

+0

Harika. Onay için teşekkürler. R-portatif kurulumu deneyeceğim. – jwijffels

+0

parlak çalışır ve varsayılan olarak 8100 bağlantı noktasında dinler, ancak onun yalnızca localhost veya tüm arabirimlerde olup olmadığını göremiyorum. Varsayarak * harici arayüzleri dinleyebilir * sonra sadece onu çalıştırmanız ve uygulamanızı görmek istediğiniz herkese URL vermeniz gerekir. Bağlantı noktası 80 dışındaki bağlantı noktaları, kullanıcıların güvenlik duvarlarıyla ilgili bir sorun olabilir ve bağlantı noktası 80'de kök ayrıcalıklarına gereksinim vardır (en azından linux üzerinde), böylece R'yi root olarak çalıştırırsınız ... – Spacedman

+0

Hmm, R-portatif kütüphaneyle birlikte çalıştım (parlak); runExample ("01_hello"); ama alıyorum: "as.environment (x) hatası: cacheContext <- CacheContext $ new() 'dan kaynaklanan' as.environment 'için geçersiz nesne. Bu hatayı neden olan herhangi bir ipucu var mı? Bununla birlikte, portatif olmayan R çalışmaları ile çalışıyor ... yani 2 arasındaki fark nedir? – jwijffels

2

OS: Windows 7 - parlak Uygulamayı çalıştırmak için tek bir toplu iş dosyası oluşturmak dışında aşağıdaki linke açıklandığı gibi öneri o web linkinde bir web tarayıcısını başlatmak için çünkü 64 bit

, adımları izleyin çalışmaz (web tarayıcısı uygulama içeriği olmadan açılır), en azından benim için.

Bu toplu komut dosyası, bir KULLANILMIYOR imtiyazlı olmayan bir portu bulur ve bir USB Flash sürücüsünden taşınabilir google chrome web tarayıcısı kullanarak yerel bir web uygulaması (Portable R Shiny App) açmak için kullanır. Yukarıdaki web bağlantısında, yazarın ayrı runShinyApp.R ve run.bat oluşturma önerisi, aşağıda verildiği gibi tek bir toplu iş dosyasına yoğunlaştırılmıştır.

@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