CommencerCommencer gratuitement

Ajuster une courbe lissée : case à cocher

Contrairement aux champs texte et numériques, les cases à cocher ne prennent que deux valeurs possibles : TRUE ou FALSE. Lorsque l’utilisateur coche une case, la valeur de l’entrée est TRUE, et si elle est décochée, la valeur renvoyée est FALSE.

Notez que le paramètre value de la fonction checkboxInput(), qui définit la valeur initiale, ne peut être réglé qu’à TRUE ou FALSE.

Le code de l’application Shiny du dernier exercice est fourni avec quelques modifications. L’objet de tracé ggplot à l’intérieur de renderPlot() est maintenant affecté à une variable p.

Cet exercice fait partie du cours

Études de cas : créer des applications web avec Shiny en R

Afficher le cours

Instructions

Votre objectif est d’ajouter une case à cocher qui, lorsqu’elle est cochée, ajoutera une droite d’ajustement au graphique. Plus précisément :

  • Ajoutez à l’UI une case à cocher avec l’ID "fit", l’étiquette "Add line of best fit", et un état initial décoché.
  • Ajoutez du code côté serveur pour que, lorsque l’entrée est cochée, une droite d’ajustement soit ajoutée au graphique. Le code pour ajouter une droite d’ajustement est fourni (ligne 26).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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)
Modifier et exécuter le code