Zacznij terazZacznij za darmo

Strzelaniny masowe: modyfikacja wyników

W tym ćwiczeniu rozszerzysz wcześniej zbudowaną aplikację Shiny tak, aby na interaktywnej mapie pojawiały się czerwone koła, których rozmiar odpowiada liczbie ofiar śmiertelnych. Po kliknięciu koła wyświetlane będzie podsumowanie danego incydentu. Twoja aplikacja powinna wyglądać jak na poniższym zrzucie ekranu.

Aplikacja wyświetlająca czerwone koła dla każdego incydentu strzelaniny masowej; po kliknięciu koła pojawiają się szczegóły zdarzenia

To ćwiczenie jest częścią kursu

Tworzenie aplikacji internetowych z Shiny w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaktualizuj wyrażenie reaktywne rval_mass_shootings tak, aby zbiór danych był filtrowany na podstawie liczby ofiar śmiertelnych (nb_fatalities) i zakresu dat (date_range) wybranych przez użytkownika.
  • Zaktualizuj kod wewnątrz addCircleMarkers() tak, aby parametr radius był przypisany do fatalities, a parametr popup – do summary. Pamiętaj, że parametr p możesz przypisać do pola f, używając zapisu p = ~ f.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

ui <- bootstrapPage(
  theme = shinythemes::shinytheme('simplex'),
  leaflet::leafletOutput('map', height = '100%', width = '100%'),
  absolutePanel(top = 10, right = 10, id = 'controls',
    sliderInput('nb_fatalities', 'Minimum Fatalities', 1, 40, 10),
    dateRangeInput('date_range', 'Select Date', "2010-01-01", "2019-12-01")
  ),
  tags$style(type = "text/css", "
    html, body {width:100%;height:100%}     
    #controls{background-color:white;padding:20px;}
  ")
)

server <- function(input, output, session) {
  rval_mass_shootings <- reactive({
    # MODIFY CODE BELOW: Filter mass_shootings on nb_fatalities and 
    # selected date_range.
    mass_shootings

      
      
      
      
  })
  output$map <- leaflet::renderLeaflet({
    rval_mass_shootings() %>%
      leaflet() %>% 
      addTiles() %>%
      setView( -98.58, 39.82, zoom = 5) %>% 
      addTiles() %>% 
      addCircleMarkers(
        # CODE BELOW: Add parameters popup and radius and map them
        # to the summary and fatalities columns

        fillColor = 'red', color = 'red', weight = 1
      )
  })
}

shinyApp(ui, server)
Edytuj i uruchom kod