输入类型

使用 shinydashboard 构建仪表板

Png Kee Seng

Researcher

输入函数

  • 在 UI 中,用户可提供输入
    • 这就像给服务员下指令
  • 在 shinyApp 中,指令通过服务器传递
  • 通过在 UI 中添加输入函数实现
  • <type>input(<identifying label>, <displayed label>, ...)
    • 第一个参数是标识标签
    • 第二个参数是显示标签
    • 其他参数取决于输入类型
使用 shinydashboard 构建仪表板

示例:睡眠研究

  • 设想我们做了一项睡眠研究并收集了数据
  • shinyApp 用户可以提供哪些输入?

睡眠研究图示

1 Image by storyset on Freepik
使用 shinydashboard 构建仪表板

selectInput

  • 常用输入是 selectInput()
  • 创建包含多个选项的下拉菜单
  • 第三个参数是包含可选项的向量
  • 此示例有四个选项
  • 暂时保持服务器为空
  • 运行 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,用于设定初始勾选状态
  • 还有变体 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...