Tipos de input

Creación de paneles con shinydashboard

Png Kee Seng

Researcher

Funciones de input

  • En la UI, las personas pueden dar inputs
    • Son como instrucciones para el camarero
  • En una shinyApp, las instrucciones van al servidor
  • Se hace añadiendo funciones de input a la UI
  • <type>input(<identifying label>, <displayed label>, ...)
    • El primer argumento es una etiqueta identificadora
    • El segundo es la etiqueta mostrada
    • Los demás dependen del tipo de input
Creación de paneles con shinydashboard

Ejemplo: estudio del sueño

  • Imagina que hicimos un estudio del sueño y recopilamos datos
  • ¿Qué inputs podría dar una persona usuaria de shinyApp?

Gráfico de un estudio del sueño

1 Imagen de storyset en Freepik
Creación de paneles con shinydashboard

selectInput

  • Un input común es selectInput()
  • Crea un menú desplegable con varias opciones
  • El tercer argumento es un vector con las opciones
  • En este ejemplo hay cuatro opciones
  • Por ahora dejamos el servidor vacío
  • Renderiza la shinyApp ejecutando 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)
Creación de paneles con shinydashboard

selectInput

selectInput con una sola selección.

Creación de paneles con shinydashboard

selectInput con selecciones múltiples

  • También podemos añadir el argumento 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)
    
Creación de paneles con shinydashboard

selectInput con selecciones múltiples

selectInput con selecciones múltiples

Creación de paneles con shinydashboard

textInput

  • Hay otros dos argumentos clave
    • value: valor con el que se rellena por defecto la caja de texto
    • placeholder: vista previa de qué poner en la caja de texto
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)
Creación de paneles con shinydashboard

textInput

Demostración de textInput

Creación de paneles con shinydashboard

checkboxInput

  • Proporciona una sola casilla de verificación en la app
  • value: TRUE o FALSE para fijar el estado inicial
  • Existe una variante, checkboxGroupInput
ui <- fluidPage(
  titlePanel("Sleeping habits in America"), 
  checkboxInput("checkboxlabel",
                "65 years and over",

value = FALSE))
server <- function(input, output, session) { } shinyApp(ui, server)
Creación de paneles con shinydashboard

checkboxInput

Demostración de checkboxInput

Creación de paneles con shinydashboard

sliderInput

  • Crea un control deslizante que permite dos cosas
    • Seleccionar un valor numérico de un rango
    • Seleccionar dos valores numéricos de un rango
  • Para un solo valor, define min y max
  • El valor inicial lo da value
  • El paso lo define 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)
Creación de paneles con shinydashboard

sliderInput

Demostración de sliderInput. El usuario puede seleccionar un solo valor.

Creación de paneles con shinydashboard

sliderInput con rangos

  • El control puede ser de dos extremos si value es un vector de longitud 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)
Creación de paneles con shinydashboard

sliderInput con rangos

control deslizante con rangos

Creación de paneles con shinydashboard

¡Vamos a practicar!

Creación de paneles con shinydashboard

Preparing Video For Download...