便携式R有光泽吗?

时间:2013-06-04 10:32:10

标签: r shiny

为了使用R构建一些Web服务,我通常使用RApache但我想看看Shiny,看看它能做些什么。 问题是,对于我想象它使用的这种情况,我没有可用的服务器,我可以运行R&有光泽,我也无法将数据传输到运行它的另一台机器上。我只有一个桌面,我想向其他用户展示Shiny应用程序,而不必让他们在桌面上安装R,也不用担心IT安装。

因此我的问题。我是否有可能在与同事共享的共享驱动器上安装R portable - http://sourceforge.net/projects/rportable/files/R-Portable/,并且Shiny应用程序可以与便携式R版本进行交互。 如果这是可能的,有人尝试过并愿意分享他的一些代码来证明它有效吗?

2 个答案:

答案 0 :(得分:3)

这应该可以正常工作,假设你可以让你的R-Portable设置有一个可移植的包库。 Shiny不启动R,你运行R然后从那里加载并启动你的Shiny应用程序(使用shiny::runApp()),然后浏览器和R进程使用TCP进行通信。

如果您的应用不需要私密,您也可以在RStudio自己的Shiny主机上申请帐户。在测试版中它是免费的。 https://rstudio.wufoo.com/forms/shiny-server-beta-program/

答案 1 :(得分:2)

操作系统:Windows 7 - 64位

按照以下链接中的说明执行操作,但创建单个批处理文件以运行闪亮的应用程序,因为在该Web链接中启动Web浏览器的建议不起作用(Web浏览器在没有应用程序内容的情况下打开) ,至少对我而言。

此批处理脚本找到 UNUSED UNPRIVILEGED PORT ,并使用它从USB闪存驱动器使用便携式谷歌浏览器网页浏览器打开本地Web应用程序(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