11

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

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

4

2 回答 2

3

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

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

于 2013-06-05T18:18:11.923 回答
2

操作系统:Windows 7 - 64 位

按照下面链接中说明的步骤操作,除了创建一个批处理文件来运行闪亮的应用程序,因为在该网络链接中启动网络浏览器的建议不起作用(网络浏览器打开时没有应用程序内容),至少为了我。

此批处理脚本找到一个UNUSED UNPRIVILEGED PORT并使用它从 USB 闪存驱动器使用便携式 google chrome Web 浏览器打开本地 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
于 2015-04-13T02:26:55.110 回答