看了几天Rshiny的逻辑和语法有点发腻,抽点时间研究了一下如何在云端部署自己的app。
然后本地服务器的话稍微复杂一点,才知道shiny不支持mac端的直接部署。哎,以后再花篇幅整理吧。当然AWS和阿里云也是可以实现的,操作方法虽然有点不一样。
注册账号以后进入自己的dashboard。然后查看自己的密钥,也就是Tokens
点击Copy to clipboard复制黏贴token。
接下来是在本地Rstudio操作。
需要用到rsconnect
包用来连接云端服务器。
install.packages('rsconnect')
然后运行刚才复制黏贴的那一段token
rsconnect::setAccountInfo(name='xxxx',
token='xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
secret='<SECRET>')
接下来是在工作文件夹里准备两个文件,ui.R和server.R
举个之前教程里出现过的例子吧
- ui.R
library(shiny)
library(shinyvalidate)
ui <- fluidPage(
numericInput("x","x",value=0),
selectInput("trans","transformation",
choices = c("square","log","square-root")
),
textOutput("out")
)
- server.R
server <- function(input,output,session) {
output$out <- renderText({
if (input$x<0 && input$trans %in% c("log","square-root")) {
validate("x cannot be negative for this transformation")
}
switch(input$trans,
square = input$x ^2,
"square-root" = sqrt(input$x),
log=log(input$x))
})
}
测试App
library(shiny)
runApp()
测试没有问题以后,点击右上角的publish就大功告成了。
可以在云端的dashborad看到自己创建的app的运行情况。只需要复制黏贴这个app的网址,就可以在手机平板电脑随时随地运行了。
运行情况也是一目了然。
网友评论