### TALLER DE DATOS #############################################

## 1. Paquetes --------------------------------------------------

library(tidyverse)
library(labelled)
library(readr)


## 2. Rutas y nombres -------------------------------------------

# Se agregan las rutas de donde se encuentran alojados los archivos csv
# correspondientes a datos judiciales.
ruta_1 <- "https://www.santafe.gob.ar/datosabiertos/sites/default/files/causas-ingresadas-fuero-civil-2016-2017.csv"
ruta_2 <- "https://www.santafe.gob.ar/datosabiertos/sites/default/files/resoluciones-fuero-civil-2016-2017.csv"
ruta_3 <- "https://www.santafe.gob.ar/datosabiertos/sites/default/files/sentencias-1ra-instancia-fuero-civil-2016-2017.csv"
ruta_4 <- "https://www.santafe.gob.ar/datosabiertos/sites/default/files/sentencias-2da-instancia-fuero-civil-2016-2017.csv"


## 3. Cargado de causas iniciadas (civiles) ----------------------------------

causas <- read_csv(ruta_1, 
                   col_types = cols(`2016` = col_character(), 
                                    `2017` = col_character()))

# 3.a Supuesto: El dato faltante (NA) es igual a cero
causas[1,4] <- 0


## 4. Condicionamiento de variables (convertir a factor) ---------------------

table(causas$Circunscripción)
table(causas$Sede)


causas$Sede[causas$Sede == "Cañada De Gomez"] <- "Cañada De Gómez"
causas$Sede[causas$Sede == "El Trebol"] <- "El Trébol"
causas$Sede[causas$Sede == "Galvez"] <- "Gálvez"
causas$Sede[causas$Sede == "Melincue"] <- "Melincué"
causas$Sede[causas$Sede == "San Cristobal"] <- "San Cristóbal"
causas$Sede[causas$Sede == "Villa Constitucion"] <- "Villa Constitución"
causas$Sede[causas$Sede == "Villa Gobernador Galvez"] <- "Villa Gobernador Gálvez"


causas <- causas %>%
          set_value_labels(Circunscripción = c(Rafaela = "Rafaela", 
                                               Reconquista = "Reconquista",
                                               Rosario = "Rosario",
                                               SantaFe = "Santa Fe",
                                               VenadoTuerto = "Venado Tuerto"),
                           Sede = c(ArroyoSeco = "Arroyo Seco",
                                    Avellaneda = "Avellaneda",
                                    CañadaDeGomez = "Cañada De Gómez",
                                    Casilda = "Casilda",
                                    Ceres = "Ceres",
                                    Coronda = "Coronda",
                                    ElTrebol = "El Trébol",
                                    Esperanza = "Esperanza",
                                    Firmat = "Firmat",
                                    Galvez = "Gálvez",
                                    Helvecia = "Helvecia",
                                    LagunaPaiva = "Laguna Paiva",
                                    LasRosas = "Las Rosas",
                                    Melincue = "Melincué",
                                    Rafaela = "Rafaela",
                                    Reconquista = "Reconquista",
                                    Rosario = "Rosario",
                                    Rufino = "Rufino",
                                    SanCarlosCentro = "San Carlos Centro",
                                    SanCristobal = "San Cristóbal",
                                    SanGenaro = "San Genaro",
                                    SanJavier = "San Javier",
                                    SanJorge = "San Jorge",
                                    SanJusto = "San Justo",
                                    SanLorenzo = "San Lorenzo",
                                    SanVicente = "San Vicente",
                                    SantaFe = "Santa Fe",
                                    SantoTome = "Santo Tome",
                                    Sastre = "Sastre",
                                    Sunchales = "Sunchales",
                                    Tostado = "Tostado",
                                    VTuerto = "Venado Tuerto",
                                    Vera = "Vera",
                                    VConstitucion = "Villa Constitución",
                                    VGGalvez = "Villa Gobernador Gálvez",
                                    VOcampo = "Villa Ocampo"))



to_factor(causas$Circunscripción)
to_factor(causas$Sede)


## 5. Ordenamiento de la base (cambio de ancho a largo) ----------------------------

causas.f <- gather(causas, key = "Año", value = "Causas", -c(Circunscripción, Sede, `Órgano Jurisdiccional`))


## 6. Cargado de resoluciones (civiles) ----------------------------------

resol <- read_csv(ruta_2, 
                  col_types = cols(`2016` = col_number(), 
                                   `2017` = col_number()))

# 6.a Supuesto: El dato faltante (NA) es igual a cero
resol[1,4] <- 0



## 7. Condicionamiento de variables (convertir a factor) ---------------------

table(resol$Circunscripción)
table(resol$Sede)

resol$Sede[resol$Sede == "Cañada De Gomez"] <- "Cañada De Gómez"
resol$Sede[resol$Sede == "El Trebol"] <- "El Trébol"
resol$Sede[resol$Sede == "Galvez"] <- "Gálvez"
resol$Sede[resol$Sede == "Melincue"] <- "Melincué"
resol$Sede[resol$Sede == "San Cristobal"] <- "San Cristóbal"
resol$Sede[resol$Sede == "Villa Constitucion"] <- "Villa Constitución"
resol$Sede[resol$Sede == "Villa Gobernador Galvez"] <- "Villa Gobernador Gálvez"


resol <- resol %>%
  set_value_labels(Circunscripción = c(Rafaela = "Rafaela", 
                                       Reconquista = "Reconquista",
                                       Rosario = "Rosario",
                                       SantaFe = "Santa Fe",
                                       VenadoTuerto = "Venado Tuerto"),
                   Sede = c(ArroyoSeco = "Arroyo Seco",
                            Avellaneda = "Avellaneda",
                            CañadaDeGomez = "Cañada De Gómez",
                            Casilda = "Casilda",
                            Ceres = "Ceres",
                            Coronda = "Coronda",
                            ElTrebol = "El Trébol",
                            Esperanza = "Esperanza",
                            Firmat = "Firmat",
                            Galvez = "Gálvez",
                            Helvecia = "Helvecia",
                            LagunaPaiva = "Laguna Paiva",
                            LasRosas = "Las Rosas",
                            Melincue = "Melincué",
                            Rafaela = "Rafaela",
                            Reconquista = "Reconquista",
                            Rosario = "Rosario",
                            Rufino = "Rufino",
                            SanCarlosCentro = "San Carlos Centro",
                            SanCristobal = "San Cristóbal",
                            SanGenaro = "San Genaro",
                            SanJavier = "San Javier",
                            SanJorge = "San Jorge",
                            SanJusto = "San Justo",
                            SanLorenzo = "San Lorenzo",
                            SanVicente = "San Vicente",
                            SantaFe = "Santa Fe",
                            SantoTome = "Santo Tome",
                            Sastre = "Sastre",
                            Sunchales = "Sunchales",
                            Tostado = "Tostado",
                            VTuerto = "Venado Tuerto",
                            Vera = "Vera",
                            VConstitucion = "Villa Constitución",
                            VGGalvez = "Villa Gobernador Gálvez",
                            VOcampo = "Villa Ocampo"))


to_factor(resol$Circunscripción)
to_factor(resol$Sede)


## 8. Ordenamiento de la base (cambio de ancho a largo) ----------------------------

resol.f <- gather(resol, key = "Año", value = "Resoluciones", -c(Circunscripción, Sede, `Órgano Jurisdiccional`))



## 9. Cargado de sentencias de 1ra instancia (civiles) ----------------------------

sent1ra <- read_csv(ruta_3, 
                    col_types = cols(`2016` = col_number(), 
                                     `2017` = col_number()))

# 9.a Supuesto: El dato faltante (NA) es igual a cero
sent1ra[1,4] <- 0



## 10. Limpieza de datos --------------------------------------------------

sent1raB <- sent1ra[,-6]


sent1raC<- sent1raB[complete.cases(sent1raB), ]



## 11. Condicionamiento de variables (convertir a factor) ---------------------

table(sent1raC$Circunscripción)
table(sent1raC$Sede)


sent1raC$Sede[sent1raC$Sede == "Cañada De Gomez"] <- "Cañada De Gómez"
sent1raC$Sede[sent1raC$Sede == "El Trebol"] <- "El Trébol"
sent1raC$Sede[sent1raC$Sede == "Galvez"] <- "Gálvez"
sent1raC$Sede[sent1raC$Sede == "Melincue"] <- "Melincué"
sent1raC$Sede[sent1raC$Sede == "San Cristobal"] <- "San Cristóbal"
sent1raC$Sede[sent1raC$Sede == "Villa Constitucion"] <- "Villa Constitución"
sent1raC$Sede[sent1raC$Sede == "Villa Gobernador Galvez"] <- "Villa Gobernador Gálvez"


sent1raC <- sent1raC %>%
  set_value_labels(Circunscripción = c(Rafaela = "Rafaela", 
                                       Reconquista = "Reconquista",
                                       Rosario = "Rosario",
                                       SantaFe = "Santa Fe",
                                       VenadoTuerto = "Venado Tuerto"),
                   Sede = c(ArroyoSeco = "Arroyo Seco",
                            Avellaneda = "Avellaneda",
                            CañadaDeGomez = "Cañada De Gómez",
                            Casilda = "Casilda",
                            Ceres = "Ceres",
                            Coronda = "Coronda",
                            ElTrebol = "El Trébol",
                            Esperanza = "Esperanza",
                            Firmat = "Firmat",
                            Galvez = "Gálvez",
                            Helvecia = "Helvecia",
                            LagunaPaiva = "Laguna Paiva",
                            LasRosas = "Las Rosas",
                            Melincue = "Melincué",
                            Rafaela = "Rafaela",
                            Reconquista = "Reconquista",
                            Rosario = "Rosario",
                            Rufino = "Rufino",
                            SanCarlosCentro = "San Carlos Centro",
                            SanCristobal = "San Cristóbal",
                            SanGenaro = "San Genaro",
                            SanJavier = "San Javier",
                            SanJorge = "San Jorge",
                            SanJusto = "San Justo",
                            SanLorenzo = "San Lorenzo",
                            SanVicente = "San Vicente",
                            SantaFe = "Santa Fe",
                            SantoTome = "Santo Tome",
                            Sastre = "Sastre",
                            Sunchales = "Sunchales",
                            Tostado = "Tostado",
                            VTuerto = "Venado Tuerto",
                            Vera = "Vera",
                            VConstitucion = "Villa Constitución",
                            VGGalvez = "Villa Gobernador Gálvez",
                            VOcampo = "Villa Ocampo"))

to_factor(sent1raC$Circunscripción)
to_factor(sent1raC$Sede)


## 12. Ordenamiento de la base (cambio de ancho a largo) ----------------------------

sent1ra.f <- gather(sent1raC, key = "Año", value = "Sentencias 1ra", -c(Circunscripción, Sede, `Órgano Jurisdiccional`))



## 13. Cargado de sentencias de 2da instancia (civiles) ----------------------------------

sent2da <- read_csv(ruta_4, 
                    col_types = cols(`2016` = col_number(), 
                                     `2017` = col_number()))



## 14. Condicionamiento de variables (convertir a factor) ---------------------

table(sent2da$Circunscripción)


sent2da <- sent2da %>%
  set_value_labels(Circunscripción = c(Rafaela = "Rafaela", 
                                       Reconquista = "Reconquista",
                                       Rosario = "Rosario",
                                       SantaFe = "Santa Fe",
                                       VenadoTuerto = "Venado Tuerto"))


to_factor(sent2da$Circunscripción)


## 11. Ordenamiento de la base (cambio de ancho a largo) ----------------------------

sent2da.f <- gather(sent2da, key = "Año", value = "Sentencias 2da", -c(Circunscripción, `Órgano Jurisdiccional`))



## 12. Limpieza de ejemplos ----------------------------------------------------------
rm(causas, resol, sent1ra, sent1raB, sent1raC, sent2da)


## 13. Haciendo más cómoda la base ---------------------------------------------------

# Se renombra la 3ra columna en cada base
names(causas.f)[3] = "Órgano"
names(resol.f)[3] = "Órgano"
names(sent1ra.f)[3] = "Órgano"
names(sent2da.f)[2] = "Órgano"


## 14. Fusión de las bases ------------------------------------

unida <- full_join(causas.f, resol.f, by = c("Sede", "Órgano", "Año", "Circunscripción"))

unida2 <- full_join(unida, sent1ra.f, by = c("Sede", "Órgano", "Año", "Circunscripción"))

civil <- full_join(unida2, sent2da.f, by= c("Órgano", "Año", "Circunscripción"))

rm(causas.f, resol.f, sent1ra.f, sent2da.f, unida, unida2)


## 16. Chequeo de la base civil ----------------------------------

glimpse(civil)

## 17. Arreglo tipo de variable ----------------------------------

civil$Causas <- as.numeric(civil$Causas)
glimpse(civil)


## 18. Ordenamiento base  --------------------------------------

names(civil)
civil2 <- civil %>% 
  select(Órgano, Sede, Circunscripción, Año, Causas, Resoluciones, `Sentencias 1ra`, `Sentencias 2da`) %>%
  arrange(Órgano, Sede, Año)


## 19. Problema de valores perdidos --------------------------------------------------------

# Se supone que los NA son iguales a 0
civil2[is.na(civil2)] <- 0


## 20. Consistencia con el procedimiento judicial ------------------------------------------

# 20.A. Algoritmo de filtrado --------------------------------------------------------------
civil3 <- civil2 %>%
        mutate(dummy = ifelse((Causas > 0 & (`Sentencias 1ra` >0 | `Sentencias 2da` >0)), 1, 0))

# 20.B Reporte de datos que cumplen con mi parámetro -------------------------------------

table(civil3$dummy)

# 20.C Datos truncados a mano -------------------------------------------------------------
civilNo <- civil3 %>%
          filter(dummy == 0)

# 20.D. Datos incluidos -------------------------------------------------------------------
civil4 <- civil3 %>%
  filter(dummy == 1)    #Esta va a ser nuestra base "tidy"

# 20.E. Reporte gráfico -------------------------------------------------------------------
ggplot(civil4, aes(x = Causas, y = Resoluciones, color = factor(Año))) + 
  geom_point()

ggplot(civil4, aes(x = Causas, y = Resoluciones, color = factor(Año))) + 
  geom_point() +
  geom_smooth(method = "lm", se = FALSE)


## 21. Agrupamiento base por sede ----------------------------------------------------------

civil5 <- civil4 %>%
  group_by(Sede, Circunscripción, Año) %>%
  summarise(causas = sum(Causas, is.na = T), resoluciones = sum(Resoluciones, is.na = T),
            sent1ra = sum((`Sentencias 1ra`), is.na = T), sent2da = sum((`Sentencias 2da`), is.na = T))



## 21. Reporte gráfico ----------------------------------------


ggplot(civil5, aes(x = causas, y = resoluciones, color = factor(Circunscripción))) + 
  geom_point()


ggplot(civil5, aes(x = causas, y = resoluciones, color = factor(Año))) + 
  geom_point()


## 22. Outliers ------------------------------------------------

# 22.A. Primer ajuste. Sedes con menos de 38000 causas ---------

civil6 <- civil5 %>%
          filter(causas <= 38000)

ggplot(civil6, aes(x = causas, y = resoluciones, color = factor(Año))) + 
  geom_point()


# 22.B. Segundo ajuste. Sedes con menos de 12000 causas ---------

civil7 <- civil5 %>%
  filter(causas <= 12000)


## 23. Reporte gráfico ------------------------------------------

ggplot(civil7, aes(x = causas, y = resoluciones, color = factor(Año))) + 
  geom_point()

ggplot(civil7, aes(x = causas, y = resoluciones, color = factor(Año))) + 
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) 


ggplot(civil7, aes(x = causas, y = resoluciones, color = factor(Año))) + 
  geom_point() +
  geom_smooth(method = "lm", se = TRUE)


ggplot(civil7, aes(x = causas, y = resoluciones)) + 
  geom_point() +
  geom_smooth(method = "lm", se = TRUE)


## 24. Variable actividad judicial -------------------------------

# 24.A. Sin agrupamiento ------------------------------------------

ggplot(civil4, aes(x = Causas, y = Resoluciones, color = factor(Año))) + 
  geom_point()


civil8 <- civil4 %>%
          mutate(actividad = Resoluciones + `Sentencias 1ra` + `Sentencias 2da`)


ggplot(civil8, aes(x = Causas, y = actividad, color = factor(Año))) + 
  geom_point() +
  geom_smooth(method = "lm", se = TRUE)


ggplot(civil8, aes(x = Causas, y = actividad)) + 
  geom_point() +
  geom_smooth(method = "lm", se = TRUE)



# 24.B. Con agrupamiento ------------------------------------------

civil9 <- civil8 %>%
  group_by(Sede, Circunscripción, Año) %>%
  summarise(causas = sum(Causas, is.na = T), resoluciones = sum(Resoluciones, is.na = T),
            sent1ra = sum((`Sentencias 1ra`), is.na = T), sent2da = sum((`Sentencias 2da`), is.na = T)) %>%
  filter(causas <= 12000 ) %>%
  mutate(actividad = resoluciones + sent1ra + sent2da)


ggplot(civil9, aes(x = causas, y = actividad, color = factor(Año))) + 
  geom_point() +
  geom_smooth(method = "lm", se = TRUE)

