กรองข้อมูลตามอายุขัย
ข้อดีที่แท้จริงของการใช้ 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)