เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

กรองข้อมูลตามอายุขัย

ข้อดีที่แท้จริงของการใช้ Shiny คือการผสานอินพุตเข้ากับเอาต์พุต ตารางที่สร้างในแบบฝึกหัดที่แล้วนั้นเป็นแบบ static ซึ่งไม่สามารถเปลี่ยนแปลงได้ แต่สำหรับการสำรวจข้อมูล จะดีกว่ามากหากผู้ใช้สามารถเลือกเองได้ว่าต้องการดูข้อมูลส่วนไหน

สิ่งนี้ทำได้โดยการเพิ่มอินพุตที่ให้ผู้ใช้ระบุค่าสำหรับกรองข้อมูล วิธีนี้จะทำให้ตารางที่สร้างในแบบฝึกหัดก่อนหน้ากลายเป็นแบบ dynamic

หนึ่งในตัวแปรของชุดข้อมูล gapminder คือ lifeExp (อายุขัย) หน้าที่ของคุณคือเพิ่ม slider input ลงใน Shiny app เพื่อให้ผู้ใช้เลือกค่าอายุขัยขั้นต่ำและสูงสุดได้ และตารางจะแสดงเฉพาะข้อมูลที่ตรงกับค่าที่เลือกเท่านั้น

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

กรณีศึกษา: การสร้างเว็บแอปพลิเคชันด้วย Shiny ใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เพิ่ม slider input ลงใน UI โดยกำหนด ID เป็น "life", ค่าขั้นต่ำเป็น 0, ค่าสูงสุดเป็น 120 และค่าเริ่มต้นที่เลือกไว้เป็น 30-50
  • ภายในฟังก์ชัน render ให้ใช้ค่าอินพุตเพื่อกรองข้อมูล gapminder ให้แสดงเฉพาะแถวที่มี lifeExp อยู่ระหว่างค่าขั้นต่ำและสูงสุดที่กำหนด (รวมค่าขอบทั้งสองด้าน)

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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)
แก้ไขและรันโค้ด