Dopasowanie krzywej wygładzającej: pole wyboru
W przeciwieństwie do pól tekstowych i numerycznych, pola wyboru mogą przyjmować tylko dwie wartości: TRUE lub FALSE. Gdy użytkownik zaznacza pole wyboru, przyjmuje ono wartość TRUE, a gdy jest odznaczone – zwraca FALSE.
Zwróć uwagę, że parametr value funkcji checkboxInput(), który określa wartość początkową, można ustawić wyłącznie na TRUE lub FALSE.
Kod aplikacji Shiny z poprzedniego ćwiczenia został udostępniony z pewną modyfikacją. Obiekt wykresu ggplot wewnątrz renderPlot() jest teraz przypisany do zmiennej p.
To ćwiczenie jest częścią kursu
Studia przypadków: tworzenie aplikacji webowych w Shiny w R
Instrukcje do ćwiczenia
Twoim zadaniem jest dodanie pola wyboru, które – po zaznaczeniu – doda do wykresu linię trendu. Konkretnie:
- Dodaj pole wyboru do interfejsu użytkownika z ID "fit", etykietą "Add line of best fit" i stanem początkowym ustawionym jako niezaznaczone.
- Dodaj kod do serwera tak, aby po zaznaczeniu pola wyboru do wykresu została dodana linia trendu. Kod dodający linię trendu jest już dostępny (wiersz 26).
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)