325 lines
11 KiB
R
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
|