Se realizará la medición de la deserción dentro de la UNICEN mediante el análisis de datos obtenidos de SIU Guaraní.
Primero, leemos los datos de SIU GUARANI y los pasamos a data frames
notas_finales <- read.csv("notas_finales.csv")
planes <- read.csv("planes.csv")
notas_cursadas <- read.csv("notas_cursadas.csv")
legajos <- read.csv("AlumnosLegCodificado.csv")
Cambiamos las fechas al formato estándar de las fechas en R y el nombre de una columna que se encontraba en mayúscula. A su vez, obtenemos los datos de los alumnos que pertenecen a la carrera de Ingeniería de Sistemas y que tengan el plan 2011. El código siguiente muestra lo implementado con el archivo de notas finales.
notas_finales <- notas_finales %>%
filter(carrera==206 & plan==2011) %>%
mutate(fecha = as.Date(fecha,"%d/%m/%Y")) %>%
select("legajo","fecha","resultado","materia")
Se realizó una función que filtra los alumnos y los clasifica en un data frame como alumnos: cursando, rindiendo, desertores, recibidos y recientes. Los recientes son aquellos que no tuvimos en cuenta para el análisis debido a que ingresaron hace muy poco tiempo.
filtrarAlumnos <-function(x,y){
#Obtenemos los legajos anteriores a una fecha y
legajos_anteriores <- filtrarAnios(y)
#Obtenemos las notas de cursadas de los ultimos x anios
notas_cursadas_recientes <- filtraAniosCursada(x)
#Obtenemos los legajos de los alumnos que actualmente estan cursando y le asignamos la variable cursando = TRUE
legajos_alumnos_cursando <- filtrarCursando(legajos_anteriores,notas_cursadas_recientes) %>%
mutate("cursando" = TRUE)
#Obtenemos las notas de finales de los ultimos x anios
notas_finales_recientes <- filtrarXAniosFinales(x)
#Obtenemos los legajos de los alumnos que estan rindiendo y le asignamos la variable rindiendo = TRUE
legajos_alumnos_rindiendo <- filtrarRindiendo(legajos_anteriores,notas_finales_recientes) %>%
select("legajo") %>%
mutate("rindiendo" = TRUE)
#Obtenemos los alumnos recibidos y le asignamos la varibale recibido = TRUE
legajos_alumnos_recibidos <- filtrarAlumnosRecibidos(legajos_anteriores) %>%
mutate("recibido" = TRUE)
#Unimos todos los legajos de alumnos cursando, rindiendo y recibidos en un dataframe
legajos_totales <- full_join(legajos_alumnos_cursando, legajos_alumnos_rindiendo, by = "legajo","estado")
legajos_totales <- full_join(legajos_totales, legajos_alumnos_recibidos, by ="legajo","estado")
#Le añadimos los alumnos mas recientes, que no tuvimos en cuenta para el filtrado
legajos_alumnos_recientes <- subset(legajos, legajos$fecha_ingreso > max(legajos_anteriores$fecha_ingreso)) %>%
select("legajo") %>%
mutate("reciente" = TRUE)
legajos_totales <- full_join(legajos_totales, legajos_alumnos_recientes, by ="legajo","estado")
#Los alumnos que no pertenecen a ningun grupo, los desertores, también los añadimos al dataframe
legajos_alumnos_desertores <- filtrardesertores(legajos_totales) %>%
mutate("abandono" = TRUE)
legajos_totales <- full_join(legajos_totales, legajos_alumnos_desertores, by ="legajo","estado")
legajos_totales[is.na(legajos_totales)] = FALSE
return(legajos_totales)
}
Invocamos a la función de filtrado y le añadimos a cada legajo el año de ingreso correspondiente. Es posible modificar el criterio de deserción (cantidad de años sin rendir ni cursar una materia) cambiando el primer parámetro de la función y cambiar los legajos que no se tendrán en cuenta para el análisis modificando el segundo parámetro que representa años.
alumnos_filtrado <- filtrarAlumnos(2,2)
alumnos_filtrado <- merge(alumnos_filtrado,legajos, by = "legajo") %>%
select("legajo","fecha_ingreso","cursando","rindiendo","recibido","abandono","reciente") %>%
separate(fecha_ingreso, sep="-", into = c("anio_ingreso", "mes_ingreso","dia_ingreso"))
Estas son las primeras filas del dataframe resultante. Como se dijo anteriormente contiene un listado de todos los alumnos y su condicion actual.
Este gráfico muestra el porcentaje total de desertores de toda la muestra exceptuando los alumnos recientes.