真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

R語言Web開發(fā)框架shiny包快速入門-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,懷來企業(yè)網(wǎng)站建設,懷來品牌網(wǎng)站建設,網(wǎng)站定制,懷來網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,懷來網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

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

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

R語言Web開發(fā)框架shiny包快速入門

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

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

也可以將ui和server代碼寫在一個腳本內(nèi),通過shinyApp執(zhí)行該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開發(fā)框架shiny包快速入門

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

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

})

R語言Web開發(fā)框架shiny包快速入門

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

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

# 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){
})

創(chuàng)建的應用如下圖所示。

R語言Web開發(fā)框架shiny包快速入門

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

R語言Web開發(fā)框架shiny包快速入門

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

R語言Web開發(fā)框架shiny包快速入門

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

#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),
      )
  ),
  dashboardBody()
)
#server.R
shinyServer(function(input,output){
})

R語言Web開發(fā)框架shiny包快速入門

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

# 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),
      )
  ),
  dashboardBody(
    plotOutput("plot")
  )
)
# server.R
shinyServer(function(input,output){
  # 進行K均值聚類
  cluster <- reactive({
    kmeans(iris[,1:4],input$clusters)
  })
  # 繪制聚類結(jié)果
  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開發(fā)框架shiny包快速入門

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

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

# 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),
      )
  ),
  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)
  })
  # 繪制聚類結(jié)果
  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)
  })
  # 展示選擇列的數(shù)據(jù)集
  output$data <- DT::renderDataTable({
    DT::datatable(iris[,c(input$xcol,input$ycol)])
  })
})

R語言Web開發(fā)框架shiny包快速入門

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

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。


本文名稱:R語言Web開發(fā)框架shiny包快速入門-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://weahome.cn/article/dcpjcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部