基于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应用程序托管为网页的方式:

  1. shinyapps.io
  2. Shiny Server
  3. 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

(0)

相关推荐

  • Nteract:可以在桌面运行的Jupyter笔记本(安装R+Julia+Python)

    https://nteract.io/ 首先官网在这里 https://github-releases.githubusercontent.com/37496521/61a31700-5f51-11e ...

  • 值得推荐的13个 Jenkins 替代方案

    Jenkins 是目前最常用的持续集成工具,拥有近 50% 的市场份额,它还是很多技术团队的第一个使用的自动化工具.但是随着自动化领域的持续发展,Jenkins 逐渐暴露出了一些问题,例如缺乏功能.维 ...

  • Jenkins持续集成的13种替代方案

    在<Jenkins越来越老了-现在该继续前进>,我们讨论了Jenkins最常见的问题,这些问题促使我们寻找替代方法.这就是为什么在本文中,我们提供了用于持续集成的最常见的Jenkins替代 ...

  • 基于R语言的shiny网页工具开发基础系列-06

    L6-反应表达式 用反应表达式,快速构建,模块化app ⚠️此篇的线上数据可能有时无法顺利抓取,要多试几次 使用反应表达式 用户会赞叹快速的app,但是你的app有大量运算影响速度了该怎么办呢? 此篇 ...

  • 基于R语言的shiny网页工具开发基础系列-05

    l5-更复杂的反应app 创建一个更复杂的依赖R脚本和额外数据的有灵魂的(能反应的)app 使用R脚本和数据 此篇旨在展示如何载入数据,R脚本,包,用来构建app. 构建一个复杂的数据,可视化美国的人 ...

  • 基于R语言的shiny网页工具开发基础系列-04

    l4-反应输出 了解小工具如何和反应输出联系,反应输出即无何时用户改变小工具都会自动更新的对象 展示反应输出 是时候给app注入灵魂了,此篇介绍如何构建一个反应输出在app中展示. 只要用户触发小工具 ...

  • 基于R语言的shiny网页工具开发基础系列-03

    l3-更复杂的页面部件 shiny 小部件提供了一个用户给app传送信息的方式 为什么加上控制小工具 上节已经学会在用户界面放置一些简单的元素,但显示更复杂的内容需要用到小部件widgets widg ...

  • 基于R语言的shiny网页工具开发基础系列-02

    l2-shiny的页面布局 基于上篇对shiny app 结构的了解 是时候开始从零构建一个shiny app了 二.构建一个用户界面 此篇旨在如何构建app对用户界面,如何布局用户界面然后加文字图片 ...

  • 基于R语言的shiny网页工具开发基础系列-01

    shiny是一个直接用R来制作交互式网页应用 (interactive web applications (apps)) 的R包 一.欢迎使用shiny 如下就是一个简单朴素的shiny app界面 ...

  • 基于R语言的shiny网页工具开发小技巧系列-08

    六年前还在上海工作的时候,机缘巧合接触了使用R语言的shiny体系搭建网页工具的技术,就一直身体力行的在我们生物信息学圈子里面推广它. 自己一个人能做的很有限,很庆幸这些年有各式各样的小伙伴加入我们& ...

  • 基于R语言的shiny网页工具开发小技巧系列-07

    六年前还在上海工作的时候,机缘巧合接触了使用R语言的shiny体系搭建网页工具的技术,就一直身体力行的在我们生物信息学圈子里面推广它. 自己一个人能做的很有限,很庆幸这些年有各式各样的小伙伴加入我们& ...

  • 基于R语言的shiny网页工具开发小技巧系列-06

    六年前还在上海工作的时候,机缘巧合接触了使用R语言的shiny体系搭建网页工具的技术,就一直身体力行的在我们生物信息学圈子里面推广它. 自己一个人能做的很有限,很庆幸这些年有各式各样的小伙伴加入我们& ...