在编写好一个Shiny应用之后,如何让其他人也能使用呢?有两种比较常见的方法:

  • 提供源代码:将代码通过邮件,网盘或者GitHub的形式进行分享,适合一些比较小型的应用,同时对使用者也有要求。
  • 网页工具:这是最最常见也是最友好的分享方式,毕竟大部分只想要鸡蛋,不需要知道鸡下蛋的过程,所以将的你应用作为网页进行分享,大家只要点点点就行了。

这部分教程也讲解如何将你写的Shiny部署到shinyapps.io上。这个方法适合那些没有自己服务器,或者没有公网IP的用户。唯一缺点就是shinyapps.io 服务器在国外,所以他的访问速度对于国内用户而言会有点慢。

第一步就是注册一个shinyapps的账号

「R shiny基础」使用shinyapp分享你的Shiny应用
Shiny 首页

注册完之后会有一步填写用户名

「R shiny基础」使用shinyapp分享你的Shiny应用
填写账号

进入用户页面之后,它非常友好的列出了部署的方法

「R shiny基础」使用shinyapp分享你的Shiny应用
部署的三步

Rstudio的图形化部署

使用Rstudio进行部署,第一次需要安装部署所需要的包

「R shiny基础」使用shinyapp分享你的Shiny应用
发布应用
「R shiny基础」使用shinyapp分享你的Shiny应用
安装所需的包

随后是配置账号

「R shiny基础」使用shinyapp分享你的Shiny应用
配置账号

当配置结束后,重新点击发布按钮,会有如下界面

「R shiny基础」使用shinyapp分享你的Shiny应用
发布

无论是那种方法,都非常地方便,然而你没有一个shiny应用可以部署。

注意事项

部署的最重要的是R包的安装,因为很有可能你用的R包在Shiny Server上可能没有,所以会出现如下的提示

「R shiny基础」使用shinyapp分享你的Shiny应用
R报错不存在

那如何让Shiny在部署的时候能够解决R包依赖问题呢?解决依赖的方式就是,在你代码里用library声明你用的包,同时不要在你的app.Rserver.R, ui.R里出现install.packages().

更加重要的一点: 请在部署之前,先运行options(encoding = "UTF-8"), 避免app.R, server.Rui.R因出现中文导致它无非顺利解析,最后运行报错。

GitHub上的讨论:https://github.com/rstudio/rsconnect/issues/123#issuecomment-260226956

传送门

Shiny基础教程:

相关文章: