Een vloeiende curve fitten: checkbox-input
In tegenstelling tot tekst- en numerieke inputs, zijn checkbox-inputs beperkt tot slechts twee mogelijke waarden: TRUE of FALSE. Wanneer de gebruiker een checkbox aanvinkt, krijgt de input de waarde TRUE, en als het vakje is uitgevinkt dan is de waarde FALSE.
Let op: de parameter value van de functie checkboxInput(), die de beginwaarde bepaalt, kan alleen op TRUE of FALSE worden gezet.
De code voor de Shiny-app uit de vorige oefening is meegegeven met een kleine aanpassing. Het ggplot-object binnen renderPlot() wordt nu toegewezen aan de variabele p.
Deze oefening maakt deel uit van de cursus
Casestudies: webapplicaties bouwen met Shiny in R
Oefeninstructies
Je taak is om een checkbox-input toe te voegen die, wanneer deze is aangevinkt, een best-fit-lijn aan de plot toevoegt. Specifiek:
- Voeg in de UI een checkbox-input toe met ID "fit", het label "Add line of best fit", en standaard uitgevinkt.
- Voeg code toe aan de server zodat, wanneer de input is aangevinkt, er een best-fit-lijn aan de plot wordt toegevoegd. De code om een best-fit-lijn toe te voegen is meegegeven (regel 26).
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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)