CommencerCommencer gratuitement

Rendre le DataFrame réactif

Faisons maintenant évoluer notre dataframe en fonction des entrées de l’utilisateur.

Cet exercice fait partie du cours

Créer des tableaux de bord avec flexdashboard

Afficher le cours

Instructions

  • Créez un « dataframe » réactif appelé show_trips_df qui ne contient que l’intervalle d’heures de début sélectionné par l’utilisateur (inclusif). Placez ce code dans le même chunk que votre sliderInput() pour garder un code propre.
  • Exécutez le document et modifiez les entrées. Observez ce qui se passe (ou non).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

{"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\n\n\nColumn {data-width=200 .sidebar}\n-----------------------------------------------------------------------\n\n```{r}\nsliderInput(\"start_slider\", \n            label = \"Select trip start times to display (hour of day):\",\n            min = 0, \n            max = 24, \n            value = c(7,10), \n            step = 1)\n\nshow_trips_df <- ___({\n  ___ %>%\n    filter(start_hour >= ___ &\n             start_hour <= ___)\n})\n```\n\nColumn {data-width=450}\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"}
Modifier et exécuter le code