Looking for shiny Answers? Try Ask4KnowledgeBase
Looking for shiny Keywords? Try Ask4Keywords

shiny閃亮的入門


備註

本節概述了閃亮的內容以及開發人員可能想要使用它的原因。

它還應該提到閃亮的任何大型主題,並鏈接到相關主題。由於文檔閃亮是新的,您可能需要創建這些相關主題的初始版本。

包括情節

包括在你的shinyApp地塊的最簡單的方法是使用plotOutput 在UI和renderPlot 在服務器中。這將適用於基本圖形以及ggPlot

library(shiny)
library(ggplot2)

ui <- fluidPage(
  plotOutput('myPlot'),
  plotOutput('myGgPlot')
)

server <- function(input, output, session){
  output$myPlot = renderPlot({
    hist(rnorm(1000))
  })
  output$myGgPlot <- renderPlot({
    ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) + geom_point()
  })
}

shinyApp(ui, server)
 

包括表格

DT包中最容易包含表, DT包是JavaScript庫DataTables的R接口。

library(shiny)
library(DT)

ui <- fluidPage(
  dataTableOutput('myTable')
)

server <- function(input, output, session){
  output$myTable <- renderDataTable({
    datatable(iris)
  })
}

shinyApp(ui, server)
 

安裝或設置

Shiny可以作為獨立應用程序在本地計算機上運行,在可以為多個用戶(使用閃亮服務器)或shinyapps.io提供閃亮應用程序的服務器上運行

  1. 在本地計算機上安裝Shiny:在R / RStudio中,如果從CRAN安裝,則運行install.packages("shiny") ,如果從RStudio Github存儲庫安裝,則運行devtools::install_github("rstudio/shiny") 。 Github存儲庫託管Shiny的開發版本,與CRAN版本相比可能具有更多功能,但它也可能不穩定。

簡單應用

每個shiny 應用程序包含兩個部分:用戶界面定義( UI )和服務器腳本( server )。此示例顯示如何從UI或服務器打印“Hello world”。

UI.R

在UI中,您可以放置​​一些視圖對象(div,輸入,按鈕等)。

library(shiny)

# Define UI for application print "Hello world" 
shinyUI(

  # Create bootstrap page 
  fluidPage(
    
    # Paragraph "Hello world"
    p("Hello world"),

    # Create button to print "Hello world" from server
    actionButton(inputId = "Print_Hello", label = "Print_Hello World"),

    # Create position for server side text
    textOutput("Server_Hello")
    
  )
)
 

Server.R

在服務器腳本中,您可以定義操作數據或偵聽操作的方法。

# Define server logic required to print "Hello World" when button is clicked
shinyServer(function(input, output) {
  
  # Create action when actionButton is clicked
  observeEvent(input$Print_Hello,{

    # Change text of Server_Hello
    output$Server_Hello = renderText("Hello world from server side")
  })
  
  
})
 

怎麼跑?

您可以通過多種方式運行您的應用:

  1. 創建兩個不同的文件並將它們放在一個目錄中,然後使用runApp('your dir path')
  2. 您可以定義兩個變量(例如ui和server),然後使用shinyApp(ui,server) 來運行您的應用程序

結果

在此示例中,您將看到一些文本和一個按鈕:

點擊前截圖

按下按鈕後服務器響應:

點擊後截圖

我什麼時候使用閃亮的?

  1. 我對一些數據進行了一些數據分析,並且團隊中有許多“非編碼”人員,他們擁有類似我的數據,並且具有類似的分析要求。在這種情況下,我可以構建一個帶有閃亮的Web應用程序,它接收用戶特定的輸入數據文件,並生成分析。
  2. 我需要與團隊中的其他人共享分析數據或相關情節。有光澤的網絡應用程序在這種情況下非常有用。
  3. 我沒有豐富的Web應用程序編程經驗,但需要快速組裝一個簡單的界面。通過簡單的UI和服務器元素以及最少的編碼來拯救。
  4. 交互式元素允許用戶探索與他們相關的數據元素。例如,您可以為整個公司加載數據,但每個部門都有一個下拉菜單,如“銷售”,“生產”,“財務”,可以按照用戶想要查看的方式匯總數據。另一種方法是生成一個包含每個部門分析的大量報告包,但他們只閱讀他們的章節和總數。