2020-08-14 13:36:36 +02:00

325 lines
11 KiB
R

# Created by Miha 3.9.2019
##########################
# AGREGAT OCEN KOMPONENT #
##########################
#------------------- DESCRIPTION --------------------#
# Ker imamo v primeru Trendov, veliko predmetov, kjer
# pri predmetu v določenem študijskem letu ni bilo
# dovolj odgovor (manj kot štiri), bomo naredili
# AGREGATE, to pomeni, da bomo za vsako zaporedje
# študijskih let, kjer je število odgovorov večje
# kot 4, naredili dodatni stolpec, ki bo agregat
# povprečja skupneg aštevila odgovor za zaporedni
# študijski leti, kjer je vsota odgovorov enaka ali
# večja 4.
# Agegati nastopajo povsod tam, kjer so TRENDI
#----------------- //DESCRIPTION// ------------------#
# Priprava podatkov za tabele (barvanje, računanje, okelpaji)
source("Evalvacija/R/funkcije/agregati_funkcije.R", encoding = "UTF-8")
#---------------------------------------------------------------------#
#------------------------ IMPORT DATA "BREZ CENZURE" -----------------------------#
#' @IMPORTANT!!! iz prejšnjih študijsih let imamo v bazi PRED tudi podatke za
#' # anketo PO, ki pa jih ignoriramo, saj smo naredili ločen izvoz za PO razen
#' za študijsko leto 14/15 ko smo delali še testno.
# Agregati za IZVAJALCA (podatki po letih) ------------------------
ag.izv <- list.files(path = paste0("Evalvacija/results/",fakulteta,"/Agregati"), pattern = "izv")
# Agregati za PREDMET (Anketa PRED, podatki po letih) -------------
ag.pred <- list.files(path = paste0("Evalvacija/results/",fakulteta,"/Agregati"), pattern = "pred")
# Agregati za PREDMET (Anketa PO, podatki po letih) -------------
ag.po <- list.files(path = paste0("Evalvacija/results/",fakulteta,"/Agregati"), pattern = "po")
# PREVERI!!!!!!!!!!!
#-------------------- SET WORKING DIREKTORY -----------------------#
# Check which PC we are working from: WORk OR HOME
fpath <- file.path(paste0("C:/MIHA DELO/FDV PROJEKT EVALVACIJE UL/EVLAVACIJE 2018_2019 UPDATED/Evalvacija/results/",fakulteta,"/Agregati"))
if (!dir.exists(fpath)){
output_dir <- paste0("E:/Work/Vasja Vehovar/EVLAVACIJE 2018_2019 UPDATED/Evalvacija/results/",fakulteta,"/Agregati")
setwd(output_dir)
} else {
setwd(fpath)
}
#------------------ //SET WORKING DIREKTORY// ---------------------#
# Agregat za Izvajalce #
#=====================#
agr.izv <-
lapply(ag.izv, function(x)
read.csv2(x, stringsAsFactors = FALSE, header = TRUE))
# Agregat za predmete (PRED) #
#============================#
agr.pred <-
lapply(ag.pred, function(x)
read.csv2(x, stringsAsFactors = FALSE, header = TRUE))
# Agregat za predmete (PO, KT, KOMEPTENCE IN PRAKSO) #
#====================================================#
agr.po <-
lapply(ag.po, function(x)
read.csv2(x, stringsAsFactors = FALSE, header = TRUE))
#---------------------- //IMPORT DATA "BREZ CENZURE"// ---------------------------#
#------------------ GET DATA FOR AGREGAT PURPOSES -------------------#
# Means, number os answers and ID of all lecturers or courses
# which will be implemented as AGREGATI
# PRED ------------
agreg.pred <- lapply(agr.pred, function(x) agregat(x, namen = "PRED"))
# PO (inlcuding kompetence, praksa, KT) -----
agreg.po <- lapply(agr.po, function(x) agregat(x, namen = "PO"))
# IPP --------------
agreg.ipp <- lapply(agr.izv, function(x) agregat(x, namen = "IPP"))
agreg.ipp <- lapply(agreg.ipp, function(x) {
x$NAZIV.PEDAGOGA <- odstNaziv(x$NAZIV.PEDAGOGA)
return(x)
})
agreg.ipp <- lapply(agreg.ipp, function(x) {
x$IPP <- paste0(x$NAZIV.PEDAGOGA, " (",x$ime.predmeta ,")")
return(x)
})
# IZV -------------
agreg.izv <- lapply(agr.izv, function(x) agregat(x, namen = "IZV"))
#---------------- //GET DATA FOR AGREGAT PURPOSES// -----------------#
#------------------ EXPORT DATA FOR ARHIV -----------------#
# Export into excel according to year
# For Arhiv pruposes and for Latex tables purposes
#' @Update: Now (9.9.2019) we will use this data for
#' trends
library(xlsx)
files <- list(agreg.ipp, agreg.izv, agreg.pred, agreg.po)
name <- c("IPP_agregat", "IZV_agregat", "PRED_agregat", "PO_agregat")
for (i in 1:unique(sapply(files, length))) {
for (ii in 1: length(files)) {
write.xlsx(
x = files[[ii]][[i]],
file = paste0("Agregati data/",name[ii], ".xlsx"),
sheetName = gsub("\\/", "_", unique(files[[ii]][[i]]$leto)),
append = TRUE
)
}
}
#---------------- //EXPORT DATA FOR ARHIV// ---------------#
# Ker v študijskem letu nimamo več ene skupne baze
# tudi ni več "N_anket_po_izpitu" ampak "N_anket"
# Da se izognemo dodatnemu delu bomo zato v zadnji
# bazi preimenovali N_anket v N_anket_po_izpitu
# saj bomo podatke v naslednjem koraku združevali
# po letih
# Velja samo za ANKETO PO
imen.c <- function(x) {
ifelse(
!"N_anket_po_izpitu" %in% colnames(x),
colnames(x)[colnames(x) == "N_anket"] <-
"N_anket_po_izpitu",
colnames(x)
)
return(x)
}
agreg.po <- lapply(agreg.po, imen.c)
#------------------- PRAPARE DATA FOR AGREGATION -------------------#
out.pred <- NULL
out.po <- NULL
out.ipp <- NULL
out.izv <- NULL
out.praksa <- NULL
# Načeloma imamo za vse namene (PRED, PO, IPP) podatke
# za enako število let, zato v loopu vzamemo kar
# seq_along(agreg.pred)
for (i in seq_along(agreg.pred)) { # Testno delamo za štiri leta, ker imamo trenutno 5 let le za FDV in FGG
# Prepare data for ANKETA PRED ---------------------------
df.pred <-
agreg.pred[[i]][grepl(
"zadovoljstvo_mean|usklajenost_mean|samostojnost_mean|literatura_mean|obvescenost_mean|informiranost_mean|znanje_mean|\\<N_anket\\>|ime.predmeta|leto|program.studentov|program.studentov.ime",
colnames(agreg.pred[[i]])
)]
# Write data
out.pred[[i]] <- df.pred
# Rbind in data frame with years
agregati.pred <- do.call("rbind", out.pred)
# Prepare data for ANKETA PO ---------------------------
df.po <-
agreg.po[[i]][grepl(
"vsebine_mean|naloge_mean|kriteriji_mean|kompetence_mean|krediti_mean|\\<N_anket_po_izpitu\\>|ime.predmeta|leto|program.studentov|program.studentov.ime",
colnames(agreg.po[[i]])
)]
# Write data
out.po[[i]] <- df.po
# Rbind in data frame with years
agregati.po <- do.call("rbind", out.po)
# Prepare data for ANKETA PRED IPP ---------------------------
df.ipp <-
agreg.ipp[[i]][grepl(
"kakovost_mean|pripravljenost_mean|razumljivost_mean|zanimivost_mean|kriticnost_mean|korektnost_mean|znanje_mean|\\<N_anket\\>|ime.predmeta|NAZIV.PEDAGOGA|izvajalec.sifra|leto|IPP",
colnames(agreg.ipp[[i]])
)]
# Write data
out.ipp[[i]] <- df.ipp
# Rbind in data frame with years
agregati.ipp <- do.call("rbind", out.ipp)
# Prepare data for ANKETA PRED IZVAJALEC ---------------------------
df.izv <-
agreg.izv[[i]][grepl(
"kakovost_mean|pripravljenost_mean|razumljivost_mean|zanimivost_mean|kriticnost_mean|korektnost_mean|znanje_mean|\\<N_anket\\>|ime.predmeta|predmet.sifra|NAZIV.PEDAGOGA|izvajalec.sifra|leto",
colnames(agreg.izv[[i]])
)]
# Write data
out.izv[[i]] <- df.izv
# Rbind in data frame with years
agregati.izv <- do.call("rbind", out.izv)
# UPDATE 18.10.2019 -----------------------------------
# Po novem zapišemo še študijsko prakso
df.praksa <-
agreg.po[[i]][grepl(
"ponudba_mean|pomoč_mean|navodila_mean|korist_mean|učinkovitost_mean|strokovnost_mean|podpora_mean|primernost_mean|dolzina_mean|\\<N_anket_po_izpitu\\>|ime.predmeta|leto|program.studentov|program.studentov.ime|PRAKSA",
colnames(agreg.po[[i]])
)]
# Write data
out.praksa[[i]] <- df.praksa
# Rbind in data frame with years
agregati.praksa <- do.call("rbind", out.praksa)
}
#----------------- //PRAPARE DATA FOR AGREGATION// -----------------#
# x <- agregati.pred %>%
# split(agregati.pred$ime.predmeta, agregati.pred$leto)
# x <- x[["BP Zgodovina mednarodnih odnosov"]]
# Split evaluations for courses/elcturer by predmet šifra
# x <- x[["BP Retorika javnih diskurzov"]]
# x <- x[["BP Televizijsko novinarstvo in novi mediji"]]
# x <- agregati.pred %>%
# split(agregati.pred$ime.predmeta, agregati.pred$leto)
# x <- x[["BD Drugi tuji strokovni jezik I: angleščina"]]
# Podatke v listu bomo za potrebe trendov
# najprej ločili glede na šifro predmeta in/ali šifro izvajalca
#' na ločenih podatkih naredili kombinacijo (glej funkcijo @kolone)
# in nato vse skupaj združili.
#' Funkcija @kolone poleg podatkovneg okvirja vrne tudi
# stolpec oz. column po imenu "stolpec", kjer
# vrednost "Stolpec 1" pomeni, da bomo v lateh naredili
# nov stolpec, kamor bomo zapisali vrednost povprečja ter
# "Stolpec 2" pomeni, da bomo naerdili ŠE en dodaten stolpec
# v latex tabeli.
# Če je verdnost NA, pomeni, da bomo predmet zapisali samo v en stolpec
# Anketa RPED
agregati.pred <- agregati.pred %>%
split(agregati.pred$ime.predmeta, agregati.pred$leto) %>%
lapply(kolone) %>%
do.call(plyr::rbind.fill, .) %>%
oklepaj(., agregati = TRUE)
# Ko naredimo merg se leta podvojijo, kar pa
# za potrebe Agregatov ne želimo
agregati.pred$LETA <- agregati.pred$leto
# Anketa PO
agregati.kom <- agregati.po[grepl("predmet.ocena.kompetence_mean|N_anket_po_izpitu|ime.predmeta|leto", colnames(agregati.po))]
agregati.KT <- agregati.po[grepl("predmet.ocena.krediti_mean|N_anket_po_izpitu|ime.predmeta|leto", colnames(agregati.po))]
agregati.po <- agregati.po %>%
# V anketi Po se skupno povprečje računa brez kompetenc in kT
select(-c('predmet.ocena.kompetence_mean',"predmet.ocena.krediti_mean")) %>%
rename(N_anket = "N_anket_po_izpitu") %>%
split(agregati.po$ime.predmeta, agregati.po$leto) %>%
lapply(kolone) %>%
do.call(plyr::rbind.fill, .) %>%
oklepaj(., agregati = TRUE)
agregati.po$LETA <- agregati.po$leto
# Agregati Kopmetence
agregati.kom <- agregati.kom %>%
rename(N_anket = "N_anket_po_izpitu") %>%
split(agregati.kom$ime.predmeta, agregati.kom$leto) %>%
lapply(kolone) %>%
do.call(plyr::rbind.fill, .) %>%
oklepaj(., agregati = TRUE)
agregati.kom$LETA <- agregati.kom$leto
# Agregati Kreditne točke
agregati.KT1 <- agregati.KT %>%
rename(N_anket = "N_anket_po_izpitu") %>%
split(agregati.KT$ime.predmeta, agregati.KT$leto) %>%
lapply(., function(x) kolone(x, KTtrend = TRUE)) %>%
do.call(plyr::rbind.fill, .) %>%
oklepaj(., agregati = TRUE)
agregati.KT1$LETA <- agregati.KT1$leto
agregati.KT <- agregati.KT %>%
rename(N_anket = "N_anket_po_izpitu") %>%
split(agregati.KT$ime.predmeta, agregati.KT$leto) %>%
lapply(., function(x) kolone(x, KTtrend = TRUE)) %>%
do.call(plyr::rbind.fill, .) %>%
oklepaj(., agregati = TRUE)
# Anketa IPP
agregati.ipp <- agregati.ipp %>%
split(agregati.ipp$IPP, agregati.po$leto) %>%
.[sapply(., nrow) > 0] %>%
lapply(kolone) %>%
do.call(plyr::rbind.fill, .) %>%
oklepaj(., agregati = TRUE)
agregati.ipp$LETA <- agregati.ipp$leto
# Anketa IZV
agregati.izv <- agregati.izv %>%
split(agregati.izv$izvajalec.sifra) %>%
lapply(kolone) %>%
do.call(plyr::rbind.fill, .) %>%
oklepaj(., agregati = TRUE)
agregati.izv$LETA <- agregati.izv$leto
# ŠTUDIJSKA PRAKSA
agregati.praksa <- subset(agregati.praksa, PRAKSA == 1)
agregati.praksa <- agregati.praksa %>%
rename(N_anket = "N_anket_po_izpitu") %>%
split(agregati.praksa$ime.predmeta, agregati.praksa$leto) %>%
lapply(kolone) %>%
do.call(plyr::rbind.fill, .) %>%
oklepaj(., agregati = TRUE)
agregati.praksa$LETA <- agregati.praksa$leto