ComenzarEmpieza gratis

Ajusta una curva suave: entrada de casilla de verificación

A diferencia de las entradas de texto y numéricas, las casillas de verificación solo tienen dos valores posibles: TRUE o FALSE. Cuando el usuario marca una casilla, la entrada toma el valor TRUE; si la desmarca, devuelve FALSE.

Ten en cuenta que el parámetro value de la función checkboxInput(), que define el valor inicial, solo puede establecerse en TRUE o FALSE.

Se proporciona el código de la app de Shiny del ejercicio anterior con algunas modificaciones. El objeto de gráfico de ggplot dentro de renderPlot() ahora se asigna a la variable p.

Este ejercicio forma parte del curso

Casos prácticos: crea aplicaciones web con Shiny en R

Ver curso

Instrucciones del ejercicio

Tu tarea es añadir una casilla de verificación que, al marcarla, añada una recta de mejor ajuste al gráfico. En concreto:

  • Añade una casilla de verificación en la UI con el ID "fit", la etiqueta "Add line of best fit" y estado inicial desmarcado.
  • Añade código en el servidor para que, cuando la entrada esté marcada, se añada la recta de mejor ajuste al gráfico. El código para añadir la recta de mejor ajuste está proporcionado (línea 26).

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Define UI for the application
ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      textInput("title", "Title", "GDP vs life exp"),
      numericInput("size", "Point size", 1, 1),
      # Add a checkbox for line of best fit
      ___
    ),
    mainPanel(
      plotOutput("plot")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    p <- ggplot(gapminder, aes(gdpPercap, lifeExp)) +
      geom_point(size = input$size) +
      scale_x_log10() +
      ggtitle(input$title)
    
    # When the "fit" checkbox is checked, add a line
    # of best fit
    if (___) {
      p <- p + geom_smooth(method = "lm")
    }
    p
  })
}

# Run the application
shinyApp(ui = ui, server = server)
Editar y ejecutar código