ПочатиПочніть безкоштовно

Підігнати гладку криву: прапорець

На відміну від текстових і числових полів введення, прапорці обмежені лише двома можливими значеннями: TRUE або FALSE. Коли користувач позначає прапорець, значення введення — TRUE, а якщо знято — повертається FALSE.

Зверніть увагу, що параметр value функції checkboxInput(), який визначає початкове значення, може бути встановлений лише як TRUE або FALSE.

Код застосунку Shiny з попередньої вправи надано з певними змінами. Об'єкт графіка ggplot всередині renderPlot() тепер привласнено змінній p.

Ця вправа є частиною курсу

Case Studies: створення вебзастосунків із Shiny в R

Переглянути курс

Інструкції до вправи

Ваше завдання — додати прапорець, який, коли його позначено, додасть на графік лінію найкращого наближення. Зокрема:

  • Додайте до UI прапорець з ID "fit", міткою "Add line of best fit" і початковим станом «знятий».
  • Додайте код до сервера так, щоб коли прапорець позначено, до графіка додавалася лінія найкращого наближення. Код для додавання лінії найкращого наближення наведено (рядок 26).

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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)
Редагувати та запускати код