El siguiente documento muestra la distribución de delitos en la comuna.
Code
datatable( df_delitos%>%slice(1:1000), # achico df para renderizar más rápidofilter ="top", # agrega filtros por columnaextensions ="Buttons", # habilita funcionalidades extraoptions =list(dom ="Bfrtip",# ubicación de botones, filtros y tablabuttons =c(# exportación de datos"copy","csv","excel","pdf","print" ),pageLength =10,# filas por páginascrollX = TRUE# scroll horizontal ))
2 Delitos durante la semana
Code
df4_dias_horarios <- df_delitos %>%mutate(dia =wday(fecha, label =TRUE)) %>%group_by(dia, horario) %>%summarise(cantidad =n())p4_dias_horarios <-ggplot( df4_dias_horarios,aes(x = dia,y = horario,fill = cantidad)) +geom_tile() +geom_text(aes(label = cantidad),color ="black",size =3) +scale_fill_distiller(palette ="YlOrRd", direction =1) +theme(legend.position ="none")+labs(title ="Cantidad de delitos por día y hora")ggplotly(p4_dias_horarios)
3 Delitos cercanos a comisarías de la comuna
Code
df_delitos_sf <- df_delitos %>%st_as_sf(coords =c("longitud", "latitud"), # columnas con coordenadascrs =4326, # WGS84na.fail = F )# transformamos comisarias a proyección con metrosdf_comisarias_metros <-st_transform(df_comisarias, 5347)# buffer de 900 metros (algo así como 9 cuadras)buffer_comisarias <-st_buffer( df_comisarias_metros,dist =900# algo así como 9 cuadras)# transformamos delitos a proyección con metrosdf_delitos_metros <-st_transform(df_delitos_sf, 5347)# delitos dentro del buffer de cada comisaría (JOIN ESPACIAL)df_delitos_buffer <-st_join( df_delitos_metros, buffer_comisarias,join = st_within, suffix =c("", "_buffer"))# cantidad de delitos por comisaría delitos_comisaria <- df_delitos_buffer %>%st_drop_geometry() %>%# volvemos a df group_by(nombre) %>%summarise(cantidad_delitos =n())p1_comisarias <-ggplot(delitos_comisaria, aes(nombre, cantidad_delitos,fill = nombre))+geom_bar(stat ="identity")+theme_minimal()+theme(legend.position ="none")+coord_flip()p1_comisarias