Created
November 6, 2024 23:16
-
-
Save gbaeza2002/5a52db0ac7f38c81fc5fa8caaa7376ee to your computer and use it in GitHub Desktop.
análisis de matriculas de colegios con R
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#install.packages("RMySQL") | |
#install.packages("dplyr") | |
#install.packages("ggplot2") | |
#2.- Habilitacion de paquetes | |
library(RMySQL) | |
library(dplyr) | |
library(ggplot2) | |
#3.- Establecemos conexion con bd | |
conexion <- dbConnect(MySQL(),user="graciany", | |
password="root", | |
dbname="trabajos_mineria", | |
host="192.168.6.4") | |
# Cargar los datos desde la base de datos | |
datos_todos <- dbGetQuery(conexion, "SELECT * FROM matriculas_2023_agrupacion") | |
# Filtro para seleccionar solo los colegios de la comuna de TEMUCO | |
datos_temuco <- datos_todos %>% filter(trimws(NOM_COM_RBD) == "TEMUCO") | |
# Filtrar los 10 colegios con mayores matrícula de Temuco | |
top_10_colegios <- datos_temuco %>% arrange(desc(MAT_TOTAL)) %>% head(10) | |
# Filtro para seleccionar solo el colegio "INSTITUTO CLARET" su rbd es 5654 | |
colegio_claret <- datos_todos %>% filter(RBD == 5654) | |
#Filtro para seleccionar solo el colegio "LICEO POLITECNICO PUEBLO NUEVO" su rbd es 5656 | |
colegio_politenicoPuebloNuevo <- datos_todos %>% filter(RBD == 5656) | |
#Gráfico de barras: Top 10 Colegios con Mayor Matrícula en Temuco | |
#------------------------------------------------------------------------------------------------------------ | |
ggplot(top_10_colegios, aes(x = reorder(NOM_RBD, -MAT_TOTAL), y = MAT_TOTAL)) + | |
geom_bar(stat = "identity", fill = "steelblue") + | |
labs(title = "Top 10 Colegios con Mayor Matrícula en Temuco", | |
x = "Nombre del Colegio", | |
y = "Total de Matrículas") + | |
theme(axis.text.x = element_text(angle = 45, hjust = 1)) + # Rotar etiquetas del eje x | |
coord_flip() # Opcional: voltear los ejes para mejorar la legibilidad | |
#Gráfico de torta: Calcular totales de mujeres y hombres para instituto claret | |
#------------------------------------------------------------------------------------------------------------ | |
totales <- data.frame( | |
Categoria = c("Mujeres", "Hombres"), | |
Total = c(colegio_claret$MAT_MUJ_TOT, colegio_claret$MAT_HOM_TOT) | |
) | |
# Calcular los porcentajes | |
totales <- totales %>% | |
mutate(Porcentaje = Total / sum(Total) * 100) | |
# Crear el gráfico de torta | |
ggplot(totales, aes(x = "", y = Total, fill = Categoria)) + | |
geom_bar(width = 1, stat = "identity") + | |
coord_polar(theta = "y") + | |
labs(title = "Distribución de Matriculados por Género en el Instituto Claret") + | |
theme_void() + | |
scale_fill_manual(values = c("blue", "pink")) + | |
geom_text(aes(label = paste0(round(Porcentaje, 1), "%")), | |
position = position_stack(vjust = 0.5), | |
color = "white") | |
#Gráfico de torta: Calcular totales de mujeres y hombres para Liceo Politecnico Pueblo Nuevo | |
#------------------------------------------------------------------------------------------------------------ | |
# Calcular totales de mujeres y hombres | |
totales_puebloNuevo <- data.frame( | |
Categoria = c("Mujeres", "Hombres"), | |
Total = c(colegio_politenicoPuebloNuevo$MAT_MUJ_TOT, colegio_politenicoPuebloNuevo$MAT_HOM_TOT) | |
) | |
# Calcular los porcentajes | |
totales_puebloNuevo <- totales_puebloNuevo %>% | |
mutate(Porcentaje = Total / sum(Total) * 100) | |
# Crear el gráfico de torta | |
ggplot(totales_puebloNuevo, aes(x = "", y = Total, fill = Categoria)) + | |
geom_bar(width = 1, stat = "identity") + | |
coord_polar(theta = "y") + | |
labs(title = "Distribución de Matriculados por Género en el Colegio Politécnico Pueblo Nuevo") + | |
theme_void() + | |
scale_fill_manual(values = c("blue", "pink")) + | |
geom_text(aes(label = paste0(round(Porcentaje, 1), "%")), | |
position = position_stack(vjust = 0.5), | |
color = "white") | |
#Histograma de Tamaño de Matrícula en los Colegios de Temuco | |
#------------------------------------------------------------------------------------------------------------ | |
ggplot(datos_temuco, aes(x = MAT_TOTAL)) + | |
geom_histogram(binwidth = 100, fill = "cornflowerblue", color = "black") + | |
labs(title = "Distribución de Tamaño de Matrícula en Colegios de Temuco (Rangos de 500)", | |
x = "Total Matrículas", y = "Frecuencia") + | |
theme_minimal() + | |
scale_x_continuous(breaks = seq(0, max(datos_temuco$MAT_TOTAL), by = 500)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment