2013-06-04 5 views
7

R을 사용하여 일부 웹 서비스를 구축하는 경우 일반적으로 RApache을 사용하지만 Shiny가 무엇을 할 수 있는지 살펴보고 싶습니다. 문제는 내가 사용하려고하는 상황에서 R & shiny를 실행할 수있는 서버를 사용할 수 없으며 서버가 실행되는 다른 컴퓨터로 데이터를 전송할 수 없습니다. 필자는 데스크톱 만 가지고 있으며 다른 사용자에게 Shiny 응용 프로그램을 보여주고 싶습니다. 데스크톱에 R을 설치하지 않고 IT 설치에 신경 쓰지 않아도됩니다.반짝이는 휴대용 R?

내 질문에. R 휴대용 - http://sourceforge.net/projects/rportable/files/R-Portable/을 동료와 공유하는 공유 드라이브에 설치하고 Shiny 응용 프로그램을 휴대용 R 버전과 상호 작용할 수 있습니까? 이것이 가능하다면, 누군가 그것을 시험해보고 그 코드가 작동한다는 것을 증명하기 위해 그의 코드를 기꺼이 공유 할 의향이 있습니까?

+0

내가하지 내가 소프트웨어 설치에 대한 관심 없어 – Simkill

+0

코딩, 자사의 소프트웨어 설치와 스택 교환보다는 수퍼 유저이 더 많은 질문을 생각합니다. 내가 어떻게하는지 안다. 저는 Shiny가 어떤 R과 의사 소통을해야 하는지를 알고 있습니다. – jwijffels

+0

나는 직장에서 자주 이것을한다. 파일 서버에 R + 라이브러리를 설치하고 파일 서버를 통해 ui.r en server.R 파일과 맵을 공유합니다. – JT85

답변

3

R-Portable 설정에 휴대용 패키지 라이브러리가 있다고 가정하면 정상적으로 작동합니다. Shiny가 R을 실행하지 않고 R을 실행 한 다음 거기에서 Shiny 응용 프로그램을로드하고 실행 한 다음 (shiny::runApp() 사용) 브라우저와 R 프로세스가 TCP를 사용하여 통신합니다.

앱이 비공개 일 필요가없는 경우 RStudio 자체의 Shiny 호스팅에 계정을 신청할 수도 있습니다. 베타 버전에서는 무료입니다. https://rstudio.wufoo.com/forms/shiny-server-beta-program/

+0

좋습니다. 확인 감사합니다. 나는 R 휴대용 셋업을 시도해 볼 것입니다. – jwijffels

+0

shiny가 실행되고 포트 8100에서 기본적으로 수신 대기하지만 localhost 또는 모든 인터페이스에서만 해당 포트를 볼 수 없습니다. 그것이 외부 인터페이스에서들을 수 있다고 가정하면, 앱을 실행하고 URL을 사용자에게 보여줘야합니다. 포트 80이 아닌 포트는 사람의 방화벽에 문제가 될 수 있으며 포트 80에는 루트 권한이 필요하므로 (적어도 리눅스에서는) 루트 권한으로 R을 실행하게됩니다 ... – Spacedman

+0

흠, 나는 R-portable 라이브러리 빛나는); runExample ("01_hello"); "as.environment (x)의 오류 : cacheContext <- CacheContext $ new()로 인해 발생하는 'as.environment'에 대한 잘못된 개체입니다. 이 오류의 원인에 대한 단서가 있습니까? 그러나 휴대용이 아닌 R 작업을 실행하면 ... 2의 차이점은 무엇입니까? – jwijffels

2

OS : 윈도우 7 - 반짝 응용 프로그램을 실행하는 하나의 배치 파일을 만들 제외하고, 아래 링크에 설명 된대로 제안이 웹 링크에서 웹 브라우저를 시작하기 때문에 64 비트

는 단계에 따라 (웹 브라우저는 앱 콘텐츠없이 열립니다.) 적어도 나를 위해.

이 배치 스크립트는 사용하지 않은 권한이없는 PORT를 발견하고 USB 플래시 드라이브에서 휴대용 구글 크롬 웹 브라우저를 사용하여 로컬 웹 응용 프로그램 (Portable R Shiny App를) 열을 사용합니다. 위의 웹 링크에서 별도의 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 
관련 문제