From 1c5df762937647ba3114b57c39ce74d92cef570e Mon Sep 17 00:00:00 2001 From: Millicool Date: Sat, 6 Dec 2025 22:32:30 +0100 Subject: [PATCH] Add first R dashboard draft --- IT Shiny App.R | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 IT Shiny App.R diff --git a/IT Shiny App.R b/IT Shiny App.R new file mode 100644 index 0000000..d7c7944 --- /dev/null +++ b/IT Shiny App.R @@ -0,0 +1,60 @@ +library(rjson) +library(shiny) +library(bslib) +library(leaflet) + + +crime_json <- fromJSON(file="C:\\Users\\milli\\Documents\\Datenbereinigung\\data.json") +bezirke <- names(crime_json) + +ui <- page_fillable( + layout_columns( + card( + selectInput( + inputId = "drp_bezirk", + label = "Bezirk", + choices = bezirke), + selectInput( + inputId = "drp_stadtteil", + label = "Stadtteil", + choices = NULL, + ) + ), + leafletOutput("hhmap"), + card("Card rechts"), + col_widths = c(3, 6, 3) + ) +) +server <- function(input, output, session){ + + observeEvent(input$drp_bezirk, { + sel_bezirk <- input$drp_bezirk + + if (sel_bezirk != "") { + + # Neue Auswahlmöglichkeiten bestimmen + sel_stadtteile <- names(crime_json[[sel_bezirk]]) + + # Zweites SelectInput-Feld aktualisieren + updateSelectInput( + session, + inputId = "drp_stadtteil", + choices = sel_stadtteile, + selected = sel_stadtteile[1] # Wählt den ersten Eintrag vor + ) + + } + }) + + output$hhmap <- renderLeaflet({ + leaflet() %>% + addProviderTiles(providers$CartoDB.Positron) %>% + setView( + lng = 9.98716634776887, + lat = 53.5488439196432, + zoom = 10 + ) + }) +} +shinyApp(ui = ui, server = server) +