亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言Web開發框架shiny包快速入門

發布時間:2020-07-27 12:58:13 來源:網絡 閱讀:18906 作者:jiabiao1602 欄目:開發技術

最近幾年關于利用shiny做web框架的需求越來越多,出去交流也經常有愛好者咨詢如何學習shiny包(個人覺得RStuido官網的shiny學習資料是最快上手的途徑之一)。今天晚上剛好給學員直播完shiny包的基本知識,順便也寫一篇關于shiny的掃盲文章出來,希望能對想學習shiny包的朋友有一點點啟發。

Shiny是R中的一種Web開發框架,使得R的使用者不必太了解css、js只需要了解一些html的知識就可以快速完成web開發,且shiny包集成了bootstrap、jquery、ajax等特性,極大解放了作為統計語言的R的生產力。

Shiny應用包含連個基本的組成部分:一個是用戶界面腳本(a user-interface script),另一個是服務器腳本(a server script)。

R語言Web開發框架shiny包快速入門

你可以在一個目錄中保存一個ui.R文件和server.R文件來創建一個Shiny應用。運行應用的方法是在函數runApp中置入目錄名稱。例如你的應用目錄名稱為myapp,且放在D盤目錄下,那么鍵入以下代碼可以執行應用:

library(shiny)
runApp("D:/myapp")

也可以將ui和server代碼寫在一個腳本內,通過shinyApp執行該app。運行以下腳本將得到一個簡單的web版直方圖。

library(shiny)
ui <- fluidPage(
numericInput(inputId = "n",
"Sample size", value = 25),
plotOutput(outputId = "hist")
)
server <- function(input, output) {
output$hist <- renderPlot({
hist(rnorm(input$n))
})
}
shinyApp(ui = ui, server = server)

R語言Web開發框架shiny包快速入門

shinydashboard擴展包為shiny框架提供了BI框架,一個dashboard由三部分組成:標題欄、側邊欄、主面板。通過install.packages(“shinydashboard”)完成安裝。執行以下腳本可以得到shinydashboard的基本框架。

# ui.R
library(shiny)
library(shinydashboard)
dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody()
)
#server.R
shinyServer(function(input,output){
 
})

R語言Web開發框架shiny包快速入門

接下來,我們就對這個BI基本框架,來豐富我們的應用。

現在,可以增加標題欄的標題,通過dashboardHeader中的title參數設置。且可以通過將disable參數設置為TRUE,隱藏標題欄,同理也可以通過此參數設置來隱藏側邊欄。并在側邊欄添加兩個下拉框控件(selectInput函數),一個數字輸入框(numericInput函數)。

# ui.R
library(shiny)
library(shinydashboard)
dashboardPage(
  dashboardHeader(title="Iris k-means clustering"),
  dashboardSidebar(
    selectInput("xcol","X Variable",names(iris)),
    selectInput("ycol","Y Variable",names(iris),selected="Sepal.Width"),
    numericInput("clusters","Cluster count",3,min=2,max=9)
  ),
  dashboardBody()
)
#server.R
shinyServer(function(input,output){
})

創建的應用如下圖所示。

R語言Web開發框架shiny包快速入門

這些控件可以添加在側邊欄,其實也可以在主面板添加,各位看官可以自己嘗試。除了這兩個控件外,shiny還有很多有用的控件,如下圖所示。

R語言Web開發框架shiny包快速入門

另外,我們還可以在shiny應用中很輕易添加HTML 內容。

R語言Web開發框架shiny包快速入門

比如說,我們現在想在應用中的側邊欄添加一個天善的logo,只需要添加img命令即可,但是請確保你的圖片是放在應用下面一個以www命名的文件夾中。要實現超鏈接的話,可以利用a命令,點擊天善logo的話將鏈接到R語言十三式的網址。

#ui.R
library(shiny)
library(shinydashboard)
dashboardPage(
  dashboardHeader(title="Iris k-means clustering"),
  dashboardSidebar(
    selectInput("xcol","X Variable",names(iris)),
    selectInput("ycol","Y Variable",names(iris),selected="Sepal.Width"),
    numericInput("clusters","Cluster count",3,min=2,max=9),
    a(img(src="logo.png",height=60,width=200),
      href="https://www.hellobi.com/event/137",target="black")
  ),
  dashboardBody()
)
#server.R
shinyServer(function(input,output){
})

R語言Web開發框架shiny包快速入門

接下來,我們通過kmeans函數對鳶尾花數據集進行K均值聚類,centers設置為Cluster count選擇的數值(input$centers),然后繪制聚類后的散點圖,散點圖的x軸的變量為X Variable(input$xcol),y軸的變量為Y Variable(input$ycol),并用每個樣本所屬的類別顏色進行區分;最后添加相應的類中心,用“*”表示。

# ui.R
library(shiny)
library(shinydashboard)
dashboardPage(
  dashboardHeader(title="Iris k-means clustering"),
  dashboardSidebar(
    selectInput("xcol","X Variable",names(iris)),
    selectInput("ycol","Y Variable",names(iris),selected="Sepal.Width"),
    numericInput("clusters","Cluster count",3,min=2,max=9),
    a(img(src="logo.png",height=60,width=200),
      href="https://www.hellobi.com/event/137",target="black")
  ),
  dashboardBody(
    plotOutput("plot")
  )
)
# server.R
shinyServer(function(input,output){
  # 進行K均值聚類
  cluster <- reactive({
    kmeans(iris[,1:4],input$clusters)
  })
  # 繪制聚類結果
  output$plot <- renderPlot({
    plot(iris[,c(input$xcol,input$ycol)],
         col=cluster()$cluster)
    points(cluster()$centers[,c(input$xcol,input$ycol)],
           col=1:input$clusters,pch="*",cex=4)
  })
})

R語言Web開發框架shiny包快速入門

在主面板我們生成了一幅散點圖,我們可以根據選擇的Cluster count值改變聚類的中心數,從而查看不同類別數的散點圖結果。也可以改變X軸、Y軸的變量查看新的桑拿點圖分布。

細心的看官已經發現,我們默認生成的圖形是填充了整個主面板寬度(列寬是12)。如果我們想進行調整,例如想一半的寬度放置散點圖,另一半的寬度放置選擇的數據表,此時我們可以通過column函數實現。

# ui.R
library(shiny)
library(shinydashboard)
dashboardPage(
  dashboardHeader(title="Iris k-means clustering"),
  dashboardSidebar(
    selectInput("xcol","X Variable",names(iris)),
    selectInput("ycol","Y Variable",names(iris),selected="Sepal.Width"),
    numericInput("clusters","Cluster count",3,min=2,max=9),
    a(img(src="logo.png",height=60,width=200),
      href="https://www.hellobi.com/event/137",target="black")
  ),
  dashboardBody(
    column(6,plotOutput("plot")),
    column(6,DT::dataTableOutput("data"))
  )
)
# server.R
shinyServer(function(input,output){
  # 進行K均值聚類
  cluster <- reactive({
    kmeans(iris[,1:4],input$clusters)
  })
  # 繪制聚類結果
  output$plot <- renderPlot({
    plot(iris[,c(input$xcol,input$ycol)],
         col=cluster()$cluster)
    points(cluster()$centers[,c(input$xcol,input$ycol)],
           col=1:input$clusters,pch="*",cex=4)
  })
  # 展示選擇列的數據集
  output$data <- DT::renderDataTable({
    DT::datatable(iris[,c(input$xcol,input$ycol)])
  })
})

R語言Web開發框架shiny包快速入門

至此,利用shiny框架搭建的一個簡易的app應用就完成了(大家可以直接復制最后的代碼到本地運行app應用)。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

忻州市| 福鼎市| 乌拉特后旗| 曲水县| 扬州市| 仁化县| 黄梅县| 尤溪县| 黎川县| 静安区| 洛南县| 安顺市| 绥芬河市| 牙克石市| 大同县| 英吉沙县| 独山县| 聊城市| 体育| 潮州市| 河北区| 雷州市| 平遥县| 仙游县| 德庆县| 梁平县| 靖远县| 洪泽县| 沾化县| 萍乡市| 松阳县| 上高县| 安丘市| 屏南县| 淮安市| 乐亭县| 舟曲县| 龙里县| 连云港市| 富蕴县| 新乡县|