如何使用ShinyApps部署Shiny应用?
来源:互联网 发布:怎样下载解压软件 编辑:程序博客网 时间:2024/05/13 18:03
原文地址:http://www.xinglongjian.com/index.php/2014/06/06/shinyapps/
接触R有几个月了,开始接触时,是在命令行下通过命令运行,能够完成强大的统计和绘图功能,后来就想R写的程序和绘制的图能否通过网页的形式运行呢,这样就可以放到网上与同行交流了,在一次数盟聚会时,听到R大牛讲到了shiny,心里非常激动,这正是我想要的东东。结果一口气把R-Web Application Development with R Using shiny.pdf英文版看完了,对如何使用shiny开发R的web应用有了了解,并且我对web技术也有所了解,因此想深入学习一下shiny,编写完后,如何部署呢?这又是一个问题,后来在RStudio的官网上发现了ShinyApps,这是一个能够部署shiny应用程序的云平台,当时ShinyApps还没正式运行,现在可以测试运行,部署一下试试看,下面就说明如何使用ShinyApps部署自己的shiny应用程序。
主要参考:Getting Started Guide
1、必要条件:
- 一个R开发环境
- 最新版本的devtools包
- 从GitHub安装shinyapps包
- 一个能够运行的shiny应用
- Windows:用于构建包的RTool
- Mac OSX:用于构建包的XCode命令行工具
2、安装devtools包
ShinyApps需要使用devtools包的最新改进特性,需要devtools包1.4或更高版本。
- > install.packages("devtools")
3、安装shinyapps包
shinyapps包用于部署应用到ShinyApps服务中。该包目前只能从GitHub中获得。
使用devtools安装:
- > library(devtools)
- > devtools::install_github("rstudio/shinyapps")
安装完后将其加载到R中
- > library(shinyapps)
4、创建一个工程
在RStudio中创建一个名为“demo”的工程,并确保shiny应用依赖包ggplot2和shiny包已安装。
在工程中需要创建2个shiny源文件:ui.R和server.R
Server.R
- library(shiny)
- library(ggplot2)
- shinyServer(function(input, output) {
- dataset <- reactive(function() {
- diamonds[sample(nrow(diamonds), input$sampleSize),]
- })
- output$plot <- reactivePlot(function() {
- p <- ggplot(dataset(), aes_string(x=input$x, y=input$y)) + geom_point()
- if (input$color != 'None')
- p <- p + aes_string(color=input$color)
- facets <- paste(input$facet_row, '~', input$facet_col)
- if (facets != '. ~ .')
- p <- p + facet_grid(facets)
- if (input$jitter)
- p <- p + geom_jitter()
- if (input$smooth)
- p <- p + geom_smooth()
- print(p)
- }, height=700)
- })
ui.R
- library(shiny)
- library(ggplot2)
- dataset <- diamonds
- shinyUI(pageWithSidebar(
- headerPanel("Diamonds Explorer"),
- sidebarPanel(
- sliderInput('sampleSize', 'Sample Size', min=1, max=nrow(dataset),
- value=min(1000, nrow(dataset)), step=500, round=0),
- selectInput('x', 'X', names(dataset)),
- selectInput('y', 'Y', names(dataset), names(dataset)[[2]]),
- selectInput('color', 'Color', c('None', names(dataset))),
- checkboxInput('jitter', 'Jitter'),
- checkboxInput('smooth', 'Smooth'),
- selectInput('facet_row', 'Facet Row', c(None='.', names(dataset))),
- selectInput('facet_col', 'Facet Column', c(None='.', names(dataset)))
- ),
- mainPanel(
- plotOutput('plot')
- )
- ))
然后获取secret,点击show
实例类型可以通过shinyapps包的configureApp函数来更改:
- shinyapps::configureApp("APPNAME", size="medium")
这样将使用medium实例类型从新部署你的应用程序。
10、应用程序权限
使用ShinyApps你可以配置权限以限制对你的应用程序的访问。当权限启用后,用户需要输入用户名和密码才能访问你的应用程序。只有正确登陆的用户才能查看和使用你的应用程序。当第一个授权用户添加时,权限自动启用。
你需要准备你的系统构建本地包,确保你的系统已经安装了一下工具:
- Windows:RTools
- Mac OSX:XCode Command Line Tools
- Linux:GCC
为了支持权限,shinyapps的版本必须>=0.3,可以使用devtools安装:
- devtools::install_github('rstudio/shinyapps')
需要使用scrypt包对密码进行加密,安装:
- devtools::install_github('rstudio/rscrypt')
然后重启R会话。
添加权限用户:
Shinyapps包中有很多函数来管理应用程序的权限用户,首先需要加载shinyapps包到R中。
使用shinyapps::addAuthorizedUser函数添加用户,然后提示输入用户的密码,密码使用scrypt加密。一旦存储,密码就不能查看,但可以重置。
- addAuthorizedUser("andy")
添加完用户后,需要使用deployApp()函数从新部署应用程序。这样,该用户可以通过用户名和密码访问应用。如果忘记密码,可以使用shinyapps::addAuthorizedUser函数重置。
移除权限用户:
使用shinyapps::removeAuthorizedUser函数移除用户。
- removeAuthorizedUser("andy")
移除完后,也需要重新部署应用程序。
- 如何使用ShinyApps部署Shiny应用?
- Shiny shinyapps部署自己的Shiny项目
- shinyapps安装部署
- shinyApps.io 的使用
- Heritrix使用小结 - Shiny programming
- 如何部署Web应用
- Shiny应用基础(1):导言
- Shiny应用基础(3):页面布局
- Shiny应用基础(7):图像互动
- Shiny应用基础(8):杂项
- DT&进度条在shiny中的应用
- 使用CSS美化shiny app效果
- 如何在tomcat部署应用
- 如何部署python + flask应用
- shiny server (免费版)部署访问密码设置
- 使用NetWeaver部署企业级应用
- 使用fastcgi部署django应用
- 使用Fabric部署网站应用
- 处理bower总是安装不了package的问题
- Java是编译型还是解释型语言
- 复用类
- 多态性
- 大学四年你必须做到的事儿---那些学计算机的
- 如何使用ShinyApps部署Shiny应用?
- 好博客搜集
- java中常见的加密算法
- 好文推荐 跨越千年的RSA算法 [Matrix67.com]
- 如何优雅地在github上贡献代码
- 【难】求数组(包括正负数和零)中相加的和(小于或)等于k的最长子数组的长度
- 黑马程序员 java之异常
- calloc、malloc、realloc的用法与区别
- apue学习第九天——系统数据文件和信息(第六章)