ComeçarComece de graça

Mass shootings: modificar a saída

Neste exercício, você vai estender o app Shiny que construiu anteriormente para que círculos vermelhos dimensionados pelo número de mortes apareçam no mapa interativo, além de um resumo do caso quando o círculo for clicado. Seu app vai se parecer com a imagem nesta captura de tela.

An app displaying red circles for each mass shooting incident with details appearing on clicking the circle

Este exercício faz parte do curso

Construindo Aplicações Web com Shiny em R

Ver curso

Instruções do exercício

  • Atualize a expressão reativa rval_mass_shootings para que o conjunto de dados seja filtrado com base no número de mortes (nb_fatalities) e no intervalo de datas (date_range) selecionados pela pessoa usuária.
  • Atualize o código dentro de addCircleMarkers() para que o radius do círculo seja mapeado para fatalities e o parâmetro popup seja mapeado para summary. Observe que você pode mapear um parâmetro p para um campo f usando p = ~ f.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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)
Editar e executar o código