Kom igångKom igång gratis

Anpassa en utjämningskurva: kryssruteinmatning

Till skillnad från text- och numeriska inmatningar är kryssruteinmatningar begränsade till endast två möjliga värden: TRUE eller FALSE. När användaren markerar en kryssruta får inmatningen värdet TRUE, och om rutan är avmarkerad returnerar den FALSE.

Observera att parametern value i funktionen checkboxInput(), som anger startvärdet, bara kan sättas till antingen TRUE eller FALSE.

Koden för Shiny-appen från föregående övning är tillhandahållen med vissa ändringar. ggplot-plotobjektet inuti renderPlot() tilldelas nu en variabel p.

Den här övningen är en del av kursen

Fallstudier: Bygg webbapplikationer med Shiny i R

Visa kurs

Övningsinstruktioner

Din uppgift är att lägga till en kryssruteinmatning som, när den är markerad, lägger till en anpassningskurva i diagrammet. Mer specifikt:

  • Lägg till en kryssruteinmatning i UI:t med ID "fit", etiketten "Add line of best fit" och ett initialt tillstånd som avmarkerad.
  • Lägg till kod i servern så att när inmatningen är markerad läggs en anpassningskurva till i diagrammet. Koden för att lägga till en anpassningskurva är tillhandahållen (rad 26).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod