การเพิ่ม Input จากผู้ใช้
มาเพิ่ม input สำหรับผู้ใช้กันเลย!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างแดชบอร์ดด้วย flexdashboard
คำแนะนำการฝึกหัด
- เพิ่ม
sliderInput()ใน side bar โดยกำหนด inputId เป็น"start_slider" - ตั้งชื่อ label ว่า
"Select trip start times to display (hour of day):" - กำหนดค่าต่ำสุดและสูงสุดเป็น 0 และ 24
- กำหนดค่าเริ่มต้นให้ครอบคลุมช่วง 7 โมงเช้าถึง 10 โมงเช้า
- กำหนด step เป็น 1 ชั่วโมง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
{"my_document.Rmd":"---\ntitle: \"Bike Shares Daily\"\noutput: \n flexdashboard::flex_dashboard:\n orientation: columns\n vertical_layout: fill\nruntime: shiny\n---\n\n```{r global, include=FALSE}\nlibrary(flexdashboard)\nlibrary(readr)\nlibrary(leaflet)\nlibrary(DT)\nlibrary(tidyverse)\nlibrary(lubridate)\nlibrary(plotly)\n\ntrips_df <- read_csv('https://assets.datacamp.com/production/course_6961/datasets/sanfran_bikeshare_joined_oneday.csv') %>%\n mutate(duration_min = duration_sec / 60,\n start_hour = hour(start_date)) %>%\n filter(duration_min <= 8 * 60) # remove trips longer than 8 hours as suspicious data quality\n\n```\n\nColumn {data-width=200 .sidebar}\n-----------------------------------------------------------------------\n\nColumn {data-width=450}\n-----------------------------------------------------------------------\n\n### Origins\n\n```{r}\n\n trips_df %>%\n rename(latitude = start_latitude,\n longitude = start_longitude) %>%\n group_by(start_station_id, latitude, longitude) %>%\n count() %>%\n leaflet() %>%\n addTiles() %>%\n addCircles(radius = ~n)\n\n\n```\n\nColumn {data-width=350}\n-----------------------------------------------------------------------\n\n### Total Trips\n\n```{r}\n\nvalueBox(prettyNum(trips_df %>%\n nrow(), big.mark = ','), \n icon = 'fa-bicycle')\n\n\n```\n\n### Trips by Duration\n\n```{r}\n\ntrips_df %>%\n ggplot(aes(x = duration_min)) +\n theme_bw() +\n xlab('Trip Duration (min) \\n') +\n ylab('# trips') +\n geom_histogram() \n\n```\n\n\n"}