輸入的種類

使用 shinydashboard 建立儀表板

Png Kee Seng

Researcher

輸入函式

  • 在 UI 中,使用者可以提供輸入
    • 就像對服務生下指令一樣
  • 在 shinyApp 中,指令會透過 server 傳遞
  • 方法是把輸入函式加入 UI
  • <type>input(<identifying label>, <displayed label>, ...)
    • 第一個引數是識別標籤
    • 第二個引數是顯示標籤
    • 其餘引數依輸入型態而定
使用 shinydashboard 建立儀表板

範例:睡眠研究

  • 想像我們做了一個睡眠研究並蒐集了資料
  • shinyApp 使用者可以提供哪些輸入?

睡眠研究示意圖

1 Image by storyset on Freepik
使用 shinydashboard 建立儀表板

selectInput

  • 常見的輸入是 selectInput()
  • 會建立含多個選項的下拉式選單
  • 第三個引數是包含可選項目的向量
  • 這個例子共有四個選項。
  • 暫時先把 server 留空
  • 透過執行 shinyApp() 來渲染 shinyApp
ui <- fluidPage(
  titlePanel("Sleeping habits in America"), 
    selectInput("selectlabel", 
                "Select an option",

choices = c("Option 1", "Option 2", "Option 3", "Option 4"))
server <- function(input, output, session) {
}
shinyApp(ui, server)
使用 shinydashboard 建立儀表板

selectInput

單一選取的 selectInput。

使用 shinydashboard 建立儀表板

可多選的 selectInput

  • 我們也能加入另一個引數 multiple
    ui <- fluidPage(
    titlePanel("Sleeping habits in America"), 
      selectInput("selectlabel", 
                  "Select an option",
                  choices = c("Option 1", "Option 2", "Option 3", "Option 4"),
                  multiple = TRUE))
    server <- function(input, output, session) {
    }
    shinyApp(ui, server)
    
使用 shinydashboard 建立儀表板

可多選的 selectInput

可多選的 selectInput

使用 shinydashboard 建立儀表板

textInput

  • 還有兩個重要引數
    • value:文字方塊的預設值
    • placeholder:提示要填入的內容
ui <- fluidPage(
  titlePanel("Sleeping habits in America"), 
  textInput("textlabel", 
            "Tell me your name", 

value = "Birdie",
placeholder = "Don"))
server <- function(input, output, session) {
}
shinyApp(ui, server)
使用 shinydashboard 建立儀表板

textInput

textInput 示範

使用 shinydashboard 建立儀表板

checkboxInput

  • 這會在應用程式中提供單一核取方塊
  • value:TRUE 或 FALSE,用來設定初始狀態
  • 還有 checkboxInput 的變體:checkboxGroupInput
ui <- fluidPage(
  titlePanel("Sleeping habits in America"), 
  checkboxInput("checkboxlabel",
                "65 years and over",

value = FALSE))
server <- function(input, output, session) { } shinyApp(ui, server)
使用 shinydashboard 建立儀表板

checkboxInput

checkboxInput 示範

使用 shinydashboard 建立儀表板

sliderInput

  • 這個元件會產生滑桿,讓使用者可做兩件事
    • 從範圍中選擇單一數值
    • 從範圍中選擇兩個數值
  • 若要選單一值,需設定 minmax
  • 初始值由 value 決定
  • 步進大小由 step 決定
ui <- fluidPage(
  titlePanel("Sleeping habits in America"), 
  sliderInput("sliderlabel",
              "Average hours of sleep",

min = 7.5, max = 11,
value = 9,
step = 0.02))
server <- function(input, output, session) { } shinyApp(ui, server)
使用 shinydashboard 建立儀表板

sliderInput

sliderInput 示範。使用者僅可選一個值。

使用 shinydashboard 建立儀表板

具有範圍的 sliderInput

  • 若將 value 設為長度為 2 的向量,可變成雙端滑桿
ui <- fluidPage(
  titlePanel("Sleeping habits in America"), 
  sliderInput("sliderlabel",
              "Average hours of sleep",
              min = 7.5,
              max = 11,

value = c(8, 10),
step = 0.02)) server <- function(input, output, session) { } shinyApp(ui, server)
使用 shinydashboard 建立儀表板

具有範圍的 sliderInput

具範圍的滑桿

使用 shinydashboard 建立儀表板

一起來練習吧!

使用 shinydashboard 建立儀表板

Preparing Video For Download...