创建一个 Shiny app之后,有时候需要共享给他人。
分享Shiny app,一般有两种途径:
-
Share your Shiny app as R scripts.
- 这是分享应用程序最简单的方式,但只有shiny用户在他们自己的电脑上有R(并且知道如何使用它),它才有效。用户可以使用这些脚本从他们自己的R会话启动应用程序。
-
Share your Shiny app as a web page.
- 用户最友好的分享应用程序的方式。用户可以通过网络浏览器浏览到shiny app。
#Share as R scripts
任何拥有R的人都可以运行Shiny app。只需要一份app.R文件的副本,以及任何在应用程序中使用的数据。
# install.packages("shiny")
library(shiny)
runApp("census-app")
Shiny 有三个内建命令,使shiny app更容易在线托管:runUrl
, runGitHub
, 和runGist
##runUrl
runUrl将直接从weblink下载并启动一个shiny app。
runURL
- 将你闪亮的应用程序的目录保存为zip文件
- 在它自己的链接上的一个网页上保存该zip文件。
library(shiny)
runUrl( "<the weblink>")
runUrl('https://github.com/rstudio/shiny_example/archive/master.tar.gz')
##runGitHub
如果没有自己的网页来存放文件,可以在www.github.com上免费存放。
其它shiny 用户可以直接运行github shiny app:
runGitHub( "<your repository name>", "<your user name>")
runGitHub("shiny_example", "rstudio")
##runGist
如果你想通过匿名方式在网上发布文件,可以在gist.github.com上分享文件。你不需要注册一个GitHub账户就可以使用这项服务。
匿名分享:
- 复制并粘贴app.R文件到gist网页。
- 请注意GitHub提供的网址。
一旦匿名分享,用户可以启动runGist应用程序(“<gist number>”),其中“<gist number>”是出现在网址末尾的数字。
runGist("eb3470beb1c0252bd0289cbc89bcf36f")
#Share as a web page
以上所有方法都有相同的局限性。它们要求用户在计算机上安装R和Shiny。
RStudio提供了三种方式托管shiny apps的在线方式:
- shinyapps.io
- Shiny Server
- RStudio Connect
##Shinyapps.io
shinyapps.io是最方便的方式。
直接从R会话上传你的应用到RStudio托管的服务器上。开发者可以完全控制您的应用程序,包括服务器管理工具。
##Shiny Server
Shiny Server是免费的,开源的,可以从GitHub获得。
Shiny Server是一个服务器程序,Linux服务器可以运行一个Shiny app作为web页面。要使用Shiny服务器,你需要一个明确支持Ubuntu 12.04或更高版本(64位)和CentOS/RHEL 5(64位)的Linux服务器。如果您没有使用显式支持的发行版,您仍然可以通过从源代码构建它来使用Shiny Server。
可以在同一个Shiny 服务器托管多个shiny app,并且可以从防火墙后面部署这些应用程序。
Shiny Server初步了解,可以查看Shiny Server安装。
##RStudio Connect
如果在盈利性的环境下使用Shiny,可能会想要提供服务器工具。
- Password authentication
- SSL support
- Administrator tools
- Priority support
RStudio Connect是RStudio一个全新发布的平台,可以实现团队合作开发;支持shiny app、R Markdown、交互式HTML控件、静态图等。
#总结
Shiny app 很容易分享; 可以通过几个R脚本来共享你的应用程序,或者通过自己的URL来共享一个功能完整的web应用程序。
- 任何人都可以启动你的应用程序,只要他们有一份R, Shiny,和shiny app的副本。
-
runUrl
,runGitHub
, 和runGist
使Shiny 共享和检索更方便。 - 通过shinyapps.io共享,可以在自己的URL上shiny app变成一个实时的网络应用。
- 可以使用一个个Linux服务器构建Shiny Server支持多个shiny app
- 如果您需要更好地控制,或者希望管理大量的流量,您可以从RStudio购买RStudio Connect。
#原文
系列文章:
R shiny教程-1:一个 Shiny app的基本组成部分
R shiny教程-2:布局用户界面
R shiny教程-3:添加小部件到Shiny App
R shiny教程-4:Shiny app响应式结果展示
R shiny教程-5:调用R程序和导入数据
R shiny教程-6:使用响应表达式reactive()
Shiny Server安装