看了幾天Rshiny的邏輯和語法有點(diǎn)發(fā)膩,抽點(diǎn)時(shí)間研究了一下如何在云端部署自己的app。
然后本地服務(wù)器的話稍微復(fù)雜一點(diǎn),才知道shiny不支持mac端的直接部署乳丰。哎,以后再花篇幅整理吧内贮。當(dāng)然AWS和阿里云也是可以實(shí)現(xiàn)的产园,操作方法雖然有點(diǎn)不一樣。
注冊(cè)賬號(hào)以后進(jìn)入自己的dashboard夜郁。然后查看自己的密鑰什燕,也就是Tokens
點(diǎn)擊Copy to clipboard復(fù)制黏貼token。
接下來是在本地Rstudio操作竞端。
需要用到rsconnect
包用來連接云端服務(wù)器屎即。
install.packages('rsconnect')
然后運(yùn)行剛才復(fù)制黏貼的那一段token
rsconnect::setAccountInfo(name='xxxx',
token='xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
secret='<SECRET>')
接下來是在工作文件夾里準(zhǔn)備兩個(gè)文件,ui.R和server.R
舉個(gè)之前教程里出現(xiàn)過的例子吧
- 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()
測試沒有問題以后,點(diǎn)擊右上角的publish就大功告成了技俐。
可以在云端的dashborad看到自己創(chuàng)建的app的運(yùn)行情況乘陪。只需要復(fù)制黏貼這個(gè)app的網(wǎng)址,就可以在手機(jī)平板電腦隨時(shí)隨地運(yùn)行了雕擂。
運(yùn)行情況也是一目了然啡邑。