基于R语言的shiny网页工具开发基础系列-07
任何使用R的人都可运行你的shiny app,他们需要你的app.R的一个副本,还有其他支持材料(比如www文件夹或者帮助脚本)
发送你的文件到另一个用户,email或者github等
用户将你的文件放入工作目录下的文件夹,就像之前我们做的一样
# install.packages("shiny")
library(shiny)
runApp("census-app")
shiny内建了三个命令使得使用在线托管的文件非常容易
分别是runUrl, runGitHub, runGist
runUrl
runUrl 会直接从网页连接下载和启动一个shiny app
使用方法
直接保存shiny app 的目录为一个zip文件 托管这个zip文件到网页连接,任何获取这个连接的人都可以从R中启动这app
library(shiny)
runUrl( "<the weblink>")
runGitHub
如果没有自己的网站,免费的代码托管网站github是个好地方http://www.github.com/
GitHub是R开发人员最受欢迎的项目托管站点,因为它不仅可以托管文件。GitHub提供了许多支持协作的功能,例如问题跟踪器,Wiki,以及与git版本控制系统的紧密集成。要使用GitHub,您需要注册(免费)并选择一个用户名。
要通过GitHub共享应用,请在GitHub上创建项目存储库。然后将您的app.R文件以及该应用程序使用的所有补充文件存储在存储库中。
您的用户可以通过运行以下命令来启动您的应用:
runGitHub( "<your repository name>", "<your user name>")
runGist
如果您想要匿名方式在线发布文件,则GitHub在gist.github.com上提供了一个粘贴板服务,用于共享文件。您无需注册GitHub帐户即可使用此服务。即使您拥有GitHub帐户,gist也是共享Shiny项目的一种简单快捷的方法。
操作方法:
将您的app.R文件复制并粘贴到gist网页。 请注意GitHub给出gist的URL
形成gist后,您的用户可以使用runGist("<gist number>")
启动应用程序,其中“”是显示在Gist网址末尾的数字。
比如:
runGist("eb3470beb1c0252bd0289cbc89bcf36f")
作为网页分享
以上所有方法都有相同的限制。他们要求您的用户在计算机上安装R和Shiny。
但是,Shiny创造了绝佳的机会,可以与没有R(也无意安装它)的人们共享输出。您的Shiny应用恰好是世界上使用最广泛的通信工具之一:网页。如果您使用自己的URL托管应用程序,则用户可以访问该应用程序(而不必担心生成该应用程序的代码)。
如果您熟悉网络托管或有权访问IT部门,则可以自己托管Shiny应用程序。
如果您希望获得更轻松的体验或需要支持,RStudio提供了三种将Web应用程序托管为网页的方式:
shinyapps.io Shiny Server RStudio Connect
Shinyapps.io
将Shiny应用程序转换为网页的最简单方法是使用Shinyapps.io,RStudio的Shiny应用程序托管服务。
shinyapps.io使您可以直接从R会话将应用程序上载到RStudio托管的服务器。您可以完全控制您的应用程序,包括服务器管理工具。您可以通过访问shinyapps.io了解有关shinyapps.io的更多信息。
Shiny Server
Shiny Server是Shiny的配套程序,可构建旨在托管Shiny应用程序的Web服务器。它是免费的开放源代码,可从GitHub获得。
Shiny Server是一个服务器程序,Linux服务器可以运行该服务器程序以将Shiny应用程序托管为网页。要使用Shiny Server,您需要一台Ubuntu 12.04或更高版本(64位)和CentOS / RHEL 5(64位)有明确支持的Linux服务器。如果未使用支持的发行版,则仍可以通过从源代码构建它来使用Shiny Server。
您可以使用同一台Shiny Server在多个网页上托管多个Shiny应用程序,并且可以从防火墙后面部署这些应用程序。
要查看有关安装和配置Shiny Server的详细说明,请访问Shiny Server指南。
RStudio Connect
如果您在营利性环境中使用Shiny,则可能需要为自己提供大多数付费服务器程序随附的服务器工具,例如
密码认证 SSL支持 管理员工具 优先支持
如果是这样,请查看RStudio Connect,这是您的团队在R中创建的工作的发布平台。在一个方便的位置共享Shiny应用程序,R Markdown报告,仪表板,绘图,Jupyter Notebook等。使用RStudio Connect,您可以通过按一下按钮从RStudio IDE中进行发布,并计划执行报告和灵活的安全策略。
如果您想了解有关RStudio Connect及其提供的功能的更多信息,请参见此处。
回顾
shiny的应用程序易于共享。您可以将应用程序共享为几个R脚本,也可以将其共享为具有自己的URL的功能完善的Web应用程序。每种方法都有其自身的优点。
任何人只要拥有R,Shiny和应用程序文件的副本,就可以启动您的应用程序。 runUrl,runGitHub和runGist使从Web链接共享和检索Shiny文件变得简单。 您可以使用shinyapps.io将自己的应用程序转换为实时Web应用程序。 您可以使用开源的Shiny Server来构建承载Shiny应用程序的Linux服务器。 如果您需要更严格的控制或要管理大量流量,则可以从RStudio购买RStudio Connect。
恭喜你 您已经完成了整个Shiny开发过程。您可以构建复杂的反应式应用程序,进行部署并与他人共享。用户可以与您的数据进行交互,并以新的方式关注您的故事。
下一步是练习,然后探索Shiny的高级功能。
Shiny Dev Center可以一路为您提供帮助。它拥有一个启发性应用程序库,以及构成这些应用程序的代码。
Shiny Dev Center还包括用于继续教育的文章部分。每篇文章都深入探讨了高级到高级的闪亮主题。
您现在已经足够了解如何构建自己的Shiny应用程序。看看你能做什么!
Reference:
Shiny - Share your apps