Khám phá dữ liệu với Shiny

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

Dean Attali

Shiny Consultant

Khám phá dữ liệu với Shiny

Tập dữ liệu

+ Môi trường tương tác

+ Xem dữ liệu

+ Lọc dữ liệu

+ Tải dữ liệu

= Ứng dụng Shiny

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

Hiển thị dữ liệu dạng bảng

country continent year lifeExp pop gdpPercap
Afghanistan Asia 1952 28.801 8425333 779.445315
Afghanistan Asia 1957 30.332 9240934 820.85303
Afghanistan Asia 1962 31.997 10267083 853.10071
Afghanistan Asia 1967 34.02 11537966 836.197138
Afghanistan Asia 1972 36.088 13079460 739.981106
Afghanistan Asia 1977 38.438 14880372 786.11336
Afghanistan Asia 1982 39.854 12881816 978.011439
Afghanistan Asia 1987 40.822 13867957 852.39595
Afghanistan Asia 1992 41.674 16317921 649.34140
Afghanistan Asia 1997 41.763 22227415 635.34135
Nghiên cứu tình huống: Xây dựng ứng dụng web với Shiny trong R

Bảng trong Shiny

  • Bảng là đầu ra

    • Đầu ra dùng hàm placeholder trong UI:
    tableOutput("my_table")
    
    • Đầu ra dùng hàm render trong server:
    output$my_table <- renderTable({
        gapminder
    })
    
Nghiên cứu tình huống: Xây dựng ứng dụng web với Shiny trong R

Lọc dữ liệu bảng

  • Có thể dùng input để lọc

    • Thêm input vào UI:
    selectInput("country", "Country",
                choices = levels(gapminder$country))
    
    • Lọc dữ liệu bằng input:
  output$my_table <- renderTable({
      subset(gapminder, country == input$country)
  })
Nghiên cứu tình huống: Xây dựng ứng dụng web với Shiny trong R

Chọn tùy chọn đầu vào

  • Tham số choices của selectInput() có thể là bất kỳ danh sách chuỗi nào

    • choices có thể là tập con của biến
    selectInput("country", "Country",
                choices = levels(gapminder$country)[1:10])
    
    • Có thể mở rộng choices để thêm giá trị mới
    selectInput("country", "Country",
                choices = c("any", levels(gapminder$country)))
    
Nghiên cứu tình huống: Xây dựng ứng dụng web với Shiny trong R

Hãy thực hành!

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

Preparing Video For Download...