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

Lọc theo tuổi thọ kỳ vọng

Lợi ích thực sự của Shiny thể hiện khi kết hợp đầu vào với đầu ra. Bảng đã tạo ở bài trước là tĩnh—không thể thay đổi—nhưng để khám phá dữ liệu, sẽ tốt hơn nếu người dùng có thể quyết định xem phần dữ liệu nào.

Bạn có thể làm được điều này bằng cách thêm một đầu vào cho phép người dùng chọn giá trị để lọc dữ liệu. Như vậy, bảng bạn tạo ở bài trước sẽ trở nên động.

Một biến trong bộ dữ liệu gapminderlifeExp (tuổi thọ kỳ vọng). Nhiệm vụ của bạn là thêm một thanh trượt vào ứng dụng Shiny để người dùng chọn giá trị tối thiểu và tối đa của tuổi thọ, và bảng chỉ hiển thị dữ liệu khớp với các giá trị này.

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

  • Thêm một thanh trượt vào UI với ID "life", giá trị tối thiểu là 0, tối đa là 120, và giá trị mặc định là 30–50.
  • Bên trong hàm render, dùng giá trị đầu vào để lọc gapminder chỉ giữ các bản ghi có lifeExp nằm giữa giá trị tối thiểu và tối đa (bao gồm cả hai đầu).

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.

ui <- fluidPage(
  h1("Gapminder"),
  # Add a slider for life expectancy filter 
  ___(inputId = ___, label = "Life expectancy",
      min = ___, max = ___,
      value = c(30, 50)),
  tableOutput("table")
)

server <- function(input, output) {
  output$table <- renderTable({
    data <- gapminder
    data <- subset(
      data,
      # Use the life expectancy input to filter the data
      lifeExp >= ___life[1] & lifeExp <= ___life[2]
    )
    data
  })
}

shinyApp(ui, server)
Chỉnh sửa và Chạy Mã