Bắt đầu ngayBắt đầu miễn phí

Vẽ đường làm trơn: checkbox input

Không giống như input dạng văn bản hoặc số, checkbox input chỉ có hai giá trị khả dĩ: TRUE hoặc FALSE. Khi người dùng tích vào checkbox, input sẽ có giá trị TRUE; nếu bỏ tích thì trả về FALSE.

Lưu ý tham số value của hàm checkboxInput(), tham số xác định giá trị khởi tạo, chỉ có thể đặt là TRUE hoặc FALSE.

Mã cho ứng dụng Shiny từ bài trước đã được cung cấp với một vài điều chỉnh. Đối tượng biểu đồ ggplot bên trong renderPlot() hiện được gán vào biến p.

Bài tập này là một phần của khóa học

Nghiên cứu tình huống: Xây dựng ứng dụng web với Shiny trong R

Xem khóa học

Hướng dẫn bài tập

Nhiệm vụ của bạn là thêm một checkbox input sao cho khi được chọn sẽ thêm đường hồi quy phù hợp nhất vào biểu đồ. Cụ thể:

  • Thêm một checkbox input vào UI với ID "fit", nhãn là "Add line of best fit", và trạng thái ban đầu là bỏ chọn.
  • Thêm mã vào server để khi input được chọn, một đường hồi quy phù hợp nhất được thêm vào biểu đồ. Mã để thêm đường hồi quy đã được cung cấp (dòng 26).

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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)
Chỉnh sửa và Chạy Mã