Vamos a crear una base de datos nueva, a partir de una base de datos a nivel tomas o usuario, vamos a agregar las variables según corresponda a nivel de colonia.
aguah2021<- read.csv("a2021.csv",
header=T,
na.strings= c('NA', " ", "", "NO TIENE", -99),
quote="\"",
dec=".",
stringsAsFactors = FALSE)
dim(aguah2021)
## [1] 296802 31
¿Cuántas colonias hay?
paste("El número de colonias de Hermosillo es de:", length(unique(aguah2021$COLONIA)))
## [1] "El número de colonias de Hermosillo es de: 769"
Figura 1: Diagrama de flujo para saber qué agregar y cómo.
Consumo em metros cúbicos para el mes de enero.
col_m3enero<-aguah2021 %>%
group_by(COLONIA) %>%
dplyr::summarize(MeanEneM3 = mean(M3_ENE, na.rm=TRUE))
head(col_m3enero)
## # A tibble: 6 × 2
## COLONIA MeanEneM3
## <chr> <dbl>
## 1 15A 15.5
## 2 22 DE SEPTIEMBRE 15.7
## 3 4 DE MARZO (INVASION) 13.1
## 4 5 DE MAYO 16.4
## 5 5 DE MAYO SECTOR A 15.6
## 6 ADOLFO DE LA HUERTA 18.9
¿Cuál colonia es la que más consume? ¿Cuál consume menos?
col_m3enero[which.max(col_m3enero$MeanEneM3),]
## # A tibble: 1 × 2
## COLONIA MeanEneM3
## <chr> <dbl>
## 1 PARQUE INDUSTRIAL NTE 1610.
col_m3enero[which.min(col_m3enero$MeanEneM3),]
## # A tibble: 1 × 2
## COLONIA MeanEneM3
## <chr> <dbl>
## 1 EL RECODO 5.56
Número de tomas por colonia.
col_tomas<-aguah2021 %>%
group_by(COLONIA) %>%
summarise(TomasTotales = n())
¿Cuál colonia es la que tiene más tomas? ¿Cuál menos?
col_tomas[which.max(col_tomas$TomasTotales),]
## # A tibble: 1 × 2
## COLONIA TomasTotales
## <chr> <int>
## 1 PUERTA REAL RESIDENCIAL 7340
col_tomas[which.min(col_tomas$TomasTotales),]
## # A tibble: 1 × 2
## COLONIA TomasTotales
## <chr> <int>
## 1 AMPLIACION OLIVOS 1
Veamos ahora otra variable “TIPO_FACTURA_ENE”. Aquí podriamos sacar la proporción de los consumos con “ESTIMADO” por colonia.
unique(aguah2021$TIPO_FACTURA_ENE)
## [1] "MEDIDO" "DIRECTO" "ESTIMADO" NA
col_tipoEne<-aguah2021 %>%
group_by(COLONIA) %>%
summarize(medido = (sum(TIPO_FACTURA_ENE == "MEDIDO")/n())*100)
head(col_tipoEne)
## # A tibble: 6 × 2
## COLONIA medido
## <chr> <dbl>
## 1 15A 40
## 2 22 DE SEPTIEMBRE 52.1
## 3 4 DE MARZO (INVASION) NA
## 4 5 DE MAYO NA
## 5 5 DE MAYO SECTOR A 37.5
## 6 ADOLFO DE LA HUERTA 56.9
aguah2021 %>%
select(COLONIA, TIPO_FACTURA_ENE, TARIFA, ) %>%
filter(TIPO_FACTURA_ENE == "MEDIDO" & COLONIA == "5 DE MAYO") %>%
head()
## COLONIA TIPO_FACTURA_ENE TARIFA
## 1 5 DE MAYO MEDIDO DOMESTICO
## 2 5 DE MAYO MEDIDO DOMESTICO
## 3 5 DE MAYO MEDIDO DOMESTICO
## 4 5 DE MAYO MEDIDO DOMESTICO
## 5 5 DE MAYO MEDIDO DOMESTICO
## 6 5 DE MAYO MEDIDO DOMESTICO
Tidyverse es muy sensible a las celdas con valores “NA”.
col_tipoEne<-aguah2021 %>%
group_by(COLONIA) %>%
summarize(medido = (sum(TIPO_FACTURA_ENE == "MEDIDO", na.rm=TRUE)/n())*100)
head(col_tipoEne)
## # A tibble: 6 × 2
## COLONIA medido
## <chr> <dbl>
## 1 15A 40
## 2 22 DE SEPTIEMBRE 52.1
## 3 4 DE MARZO (INVASION) 22.9
## 4 5 DE MAYO 47.2
## 5 5 DE MAYO SECTOR A 37.5
## 6 ADOLFO DE LA HUERTA 56.9
tail(col_tipoEne)
## # A tibble: 6 × 2
## COLONIA medido
## <chr> <dbl>
## 1 VISTA BELLA 90.9
## 2 VISTA DEL LAGO 75
## 3 VISTA DEL SOL 73.1
## 4 VISTA REAL 35.6
## 5 VIÑEDOS 48.4
## 6 Y GRIEGA 43.4
No podemos saber cuánta agua en total consume una colonia con demasiados consumos estimados.
totales1 <- merge(col_tomas,col_tipoEne,by="COLONIA")
totales2<- merge(totales1,col_m3enero,by="COLONIA")
head(totales2)
## COLONIA TomasTotales medido MeanEneM3
## 1 15A 35 40.00 15.54
## 2 22 DE SEPTIEMBRE 242 52.07 15.69
## 3 4 DE MARZO (INVASION) 510 22.94 13.14
## 4 5 DE MAYO 1046 47.23 16.37
## 5 5 DE MAYO SECTOR A 40 37.50 15.57
## 6 ADOLFO DE LA HUERTA 390 56.92 18.92
write.csv(totales2, file = "totales2.csv", row.names = F, fileEncoding="UTF-8")