2262 lines
145 KiB
R
2262 lines
145 KiB
R
#################################
|
|
# KRATEK OPIS STRUKTURE POROČIL #
|
|
#################################
|
|
# Poročilo je sestavljeno na podlagi R kode (izračuni) in latex kode (.tex, struktura poročil)
|
|
# Vhodne datoteke se nahajajo v mapi "temp", kjer sta dve ločeni datoteki s podatki za +
|
|
# ANKETO PRED IZPITOM in ANKETO PO IZPITU
|
|
# V mapi se nahajajo tudi šifranti (ki služijo opredelitvi izvajalcev fakultete, predmetov, +
|
|
# načina študija, študijskih programov), itd: +
|
|
# Podrobno preberi: http://ul.1ka.si/index.php?fl=2&lact=1&bid=40&parent=3
|
|
# V poročilu so ocenjene, obarvane in v tabelah predstavljene vrednosti komponent za izvajalca, +
|
|
# vrednosti komponent predmetov PRED izpitom in vrednosti komponent PO izpitu.
|
|
# Komponente za izvajalca so: Kakovost, Pripravljenost, Razumljivost, Zanimivost, Kritičnost, Korektnost
|
|
# Komponente predmeta (ANKETA PRED): Zadovoljstvo, Usklajenost, Samostojnost, Literatura, Obveščenost, Info. na spletu, Preverjanje
|
|
# Komponente predmeta (ANKETA PO):Vsebine, naloge, Ocenjevanje, Kompetence, Ustreznost Kreditnih točk
|
|
########
|
|
# skripta: koda.r je osnova (ki jo vedno najprej poženemo) in je namenjena opredelitvi +
|
|
# spremenljivk, vektorjev, podatkovnih okvirjev in izračunu povprečij, kvantilnih rangov, +
|
|
# obarvanju, itd.
|
|
# Obarvanja povprečij komponent in kvantilnih rangov opredelimo v skkripti funkcije.R
|
|
# Skripto tabelaBy.r pa uporabimo samo pri izpisu PDF za izvajalca. Pri izpisu za programe, fakulteto tega ne uporabljamo.
|
|
# Ko smo pognali skrpto kodo.r, lahko generiramo poročilo za izvajalce, tako da poženemo +
|
|
# skirpto koda-izvajalec_predmet.r.
|
|
# Skripta koda-fakulteta.r služi generiranju poročila za fakulteto.
|
|
# Skripta koda-programi pa generira poročila za študijske programe.
|
|
########
|
|
# Glavo dokumenta, obarvanje vrednosti, širino tabel, rotiranje stolpcev, +
|
|
# nove strani, poglavja, kazalo itd. generiramo s pomočjo latex kode, ki je +
|
|
# prenesena v R.
|
|
# V mapi latexkosi so denifirane tex. datoteke, ki so namenjene generiranju +
|
|
# glave (prva stran, kazalo) in noge (zaključek) poročila
|
|
### Poročilo za izvajalca: glavno dokumenta definira tex datoteka a-glava.tex, +
|
|
# ki jo preberemo v skripti koda-izvajalec_predmet.r
|
|
### Poročilo za fakulteto: glavo dokumenta definira tex datoteka
|
|
# a-glava-program.tex (glej skripto koda-fakulteta.r)
|
|
### Excel datoteka "navodila" je narejena s strani programerja in +
|
|
# služi opredelitvi anketnih vprašanj za izvajalca, ter predmete (ANKETA PRED IN PO IZPITU) +
|
|
# oz. komponent, po katerih računamo povprečja, kvantilne range, itd.
|
|
# Vsebuje tudi mejne vrednosti posameznih obarvanj (stolpec: pobarvanka), zaokroževanje +
|
|
# izračunanih povprečij v tabelah na eno decimalko (stolpec: decimalke), itd.
|
|
|
|
## //KRATEK OPIS STRUKTURE POROČIL// ##
|
|
|
|
|
|
## 1KA strežnik ##
|
|
# Del, ki ga potrebuje Peter, da generira ustrezno poročilo za posamezno fakulteto na strežniku
|
|
# Tega ne poganjamo
|
|
#params <- commandArgs(trailingOnly = TRUE)
|
|
#ID <- params[1]
|
|
## //1KA strežnik// ##
|
|
|
|
|
|
# Potrebne knjižnice #
|
|
libraries <- c('tools', 'psych', 'Hmisc', 'reports', 'fmsb','car','Cairo','openxlsx','qpcR')
|
|
lapply(libraries, FUN = function(y) {
|
|
do.call('require', list(y))})
|
|
# //Potrebne knjižnice// #
|
|
|
|
|
|
# Naložimo dodatne funkcije (obarvanje povprečja + generiranje tabel v poglavju Analiza predmeta po programih in letnikih:
|
|
# glej poročilo za izvajalca )
|
|
# Če želimo spremeniti barvo, moramo novo barvo defnirati v skripti funkcije.r in v tex. datotekah (npr za izvajalca: a-glava.tex)
|
|
# !preveri! #
|
|
source('Evalvacija/R/funkcije/funkcije.r') # Barvanje povprečnih ocnen komponent, kvantilnig rangov, rotiranje imena stolpcev v tabelah, itd.
|
|
source('Evalvacija/R/funkcije/tabelaBy.r') # Generiranje nekaterih tabel (Glej poročilo za izvajalca: Analiza predmeta po programih in letnikih)
|
|
|
|
options(nwarnings = 10000)
|
|
# ignore these warnings:
|
|
# "[DATA NOT ENOUGH] at 3 NA" <- fmsb::radarchart ne more naredit radar grafa predmeta ker ni vsaj 3 vrednosti za ocene komponent predmeta
|
|
# "In FUN(newX[, i], ...) : no non-missing arguments to min; returning Inf/-Inf" <- ne more izračunat min in max ker je n=0
|
|
|
|
|
|
# Ustvarimo mapo, kjer se bodo shranjevale slike (grafi, histogrami, barploti)
|
|
dir.create('Evalvacija/results/part-izvajalec-slike', showWarnings = FALSE) # Slike za izvajalca
|
|
dir.create('Evalvacija/results/part-predmet-slike', showWarnings = FALSE) # Slike za predmet
|
|
|
|
# Opredelimo ID fakultete, ki skrbi za to da se v poročilu (kjer je dogovorjeno) izpiše kratice fakultete,
|
|
# ime fakultete ter izriše logo fakultete.
|
|
# (glej poročilo za izvajalca, ki ga generira R. skripta koda-izvajalec_predmet)
|
|
# ID skrbi tudi, da preberemo ustrezne CSV datoteke za ustrezno Fakulteto.
|
|
ID <- 3000018 # Ko se koda prenese na strežnik ID zakomentiramo, saj ga Peter ne Potrebuje
|
|
fakulteta <- ""
|
|
ime.fakultete <- ""
|
|
if (ID == 3000001) { # here
|
|
fakulteta <- "PEF" # Purpose: Read CSV file which has "PEF" in the end of the file.
|
|
studijska.praksa <- "Prakse PEF" # V primeru ko/če ima izvajalec študijsko prasko, se v izpisu za izvajalca ustvari poglavje: ŠTUDIJSKA PRAKSA, kjer se pri izrisu barplotov, namesto izpisa "Povprečje PEF", izpiše: "Prakse PEF"
|
|
ime.fakultete <- "Pedagoška fakulteta" # na prvi strani PDF poročila pod sliko
|
|
logo <- "logo_PEF" # na prvi strani PDF poročila doda usterzno sliko fakultete (logo uporabimo pri generiranju poročil glej koda-izvajalec_predmet.r)
|
|
} else if (ID == 3000004){
|
|
fakulteta <- "FU" # Purpose: Read CSV file which has "FU" in the end of the file.
|
|
studijska.praksa <- "Prakse FU"
|
|
ime.fakultete <- "Fakulteta za upravo"
|
|
logo <- "logo_FU" # Logoi se nahajajo : latexkosi/logo/
|
|
} else if (ID == 3000006){
|
|
fakulteta <- "FSD"
|
|
studijska.praksa <- "Prakse FSD"
|
|
ime.fakultete <- "Fakulteta za socialno delo"
|
|
logo <- "logo_FSD"
|
|
} else if (ID == 3000009){
|
|
fakulteta <- "FPP"
|
|
studijska.praksa <- "Prakse FPP"
|
|
ime.fakultete <- "Fakulteta za pomorstvo in promet"
|
|
logo <- "logo_FPP"
|
|
} else if (ID == 3000011){
|
|
fakulteta <- "ZF"
|
|
studijska.praksa <- "Prakse ZF"
|
|
ime.fakultete <- "Zdravstvena fakulteta"
|
|
logo <- "logo_ZF"
|
|
} else if (ID == 3000018){
|
|
fakulteta <- "FF"
|
|
studijska.praksa <- "Prakse FF"
|
|
ime.fakultete <- "Filozofska fakulteta"
|
|
logo <- "logo_FF"
|
|
} else if (ID == 3000019){
|
|
fakulteta <- "EF"
|
|
studijska.praksa <- "Prakse EF"
|
|
ime.fakultete <- "Ekonomska fakulteta"
|
|
logo <- "logo_EF"
|
|
} else if (ID == 3000020){
|
|
fakulteta <- "PF"
|
|
studijska.praksa <- "Prakse PF"
|
|
ime.fakultete <-"Pravna fakulteta"
|
|
logo <- "logo_PF"
|
|
} else if (ID == 3000021){
|
|
fakulteta <- "FDV"
|
|
studijska.praksa <- "Prakse FDV"
|
|
ime.fakultete <- "Fakulteta za družbene vede"
|
|
logo <- "logo_FDV"
|
|
} else if (ID == 3000022){
|
|
fakulteta <- "FSSS"
|
|
studijska.praksa <- "Prakse FSSS"
|
|
ime.fakultete <- "Fakulteta za šport"
|
|
logo <- "logo_FSSS"
|
|
} else if (ID == 3000023){
|
|
fakulteta <- "FS"
|
|
studijska.praksa <- "Prakse FSTR"
|
|
ime.fakultete <- "Fakulteta za strojništvo"
|
|
logo <- "logo_FSTR"
|
|
} else if (ID == 3000025){
|
|
fakulteta <- "FA"
|
|
studijska.praksa <- "Prakse FA"
|
|
ime.fakultete <- "Fakulteta za arhitekturo"
|
|
logo <- "logo_FA"
|
|
} else if (ID == 3000026){
|
|
fakulteta <- "FGG"
|
|
studijska.praksa <- "Prakse FGG"
|
|
ime.fakultete <- "Fakulteta za gradbeništvo in geodezijo"
|
|
logo <- "logo_FGG"
|
|
} else if (ID == 3000027){
|
|
fakulteta <- "FMF"
|
|
studijska.praksa <- "Prakse FMF"
|
|
ime.fakultete <- "Fakulteta za matematiko in fiziko"
|
|
logo <- "logo_FMF"
|
|
} else if (ID == 3000029){
|
|
fakulteta <- "NTF"
|
|
studijska.praksa <- "Prakse NTF"
|
|
ime.fakultete <- "Naravoslovnotehniška fakulteta"
|
|
logo <- "logo_NTF"
|
|
} else if (ID == 3000030){
|
|
fakulteta <- "FKKT"
|
|
studijska.praksa <- "Prakse FKKT"
|
|
ime.fakultete <- "Fakulteta za kemijo in kemijsko tehnologijo"
|
|
logo <- "logo_FKKT"
|
|
} else if (ID == 3000031){
|
|
fakulteta <- "FFA"
|
|
studijska.praksa <- "Prakse FFARM"
|
|
ime.fakultete <- "Fakulteta za farmacijo"
|
|
logo <- "logo_FFARM"
|
|
} else if (ID == 3000037){
|
|
fakulteta <- "VF"
|
|
studijska.praksa <- "Prakse VF"
|
|
ime.fakultete <- "Veterinarska fakulteta"
|
|
logo <- "logo_VF"
|
|
} else if (ID == 3000041){
|
|
fakulteta <- "MF"
|
|
studijska.praksa <- "Prakse MF"
|
|
ime.fakultete <- "Medicinska fakulteta"
|
|
logo <- "logo_MF"
|
|
} else if (ID == 3000042){
|
|
fakulteta <- "ALUO"
|
|
studijska.praksa <- "Prakse ALUO"
|
|
ime.fakultete <- "Akademija za likovno umetnost in oblikovanje"
|
|
logo <- "logo_ALU"
|
|
} else if (ID == 3000043){
|
|
fakulteta <- "AG"
|
|
studijska.praksa <- "Prakse AG"
|
|
ime.fakultete <- "Akademija za glasbo"
|
|
logo <- "logo_AG"
|
|
} else if (ID == 3000044){
|
|
fakulteta <- "AGRFT"
|
|
studijska.praksa <- "Prakse AGRFT"
|
|
ime.fakultete <- "Akademija za gledališče, radio, film in televizijo"
|
|
logo <- "logo_AGRFT"
|
|
} else if (ID == 3000050){
|
|
fakulteta <- "TEOF"
|
|
studijska.praksa <- "Prakse TEOF"
|
|
ime.fakultete <- "Teološka fakulteta"
|
|
logo <- "logo_TEOF"
|
|
} else if (ID == 3000063){
|
|
fakulteta <- "FRI"
|
|
studijska.praksa <- "Prakse FRI"
|
|
ime.fakultete <- "Fakulteta za računalništvo in informatiko"
|
|
logo <- "logo_FRI"
|
|
} else if (ID == 3000064){
|
|
fakulteta <- "FE"
|
|
studijska.praksa <- "Prakse FE"
|
|
ime.fakultete <- "Fakulteta za elektrotehniko"
|
|
logo <- "logo_FE"
|
|
} else if (ID == 3000071){
|
|
fakulteta <- "BF"
|
|
studijska.praksa <- "Prakse BF"
|
|
ime.fakultete <- "Biotehniška fakulteta"
|
|
logo <- "logo_BF"
|
|
} else {
|
|
fakulteta <- ""
|
|
studijska.praksa <- ""
|
|
ime.fakultete <- ""
|
|
}
|
|
## //Opredelimo ID// ##
|
|
|
|
|
|
## //Preberemo vhodne datoteke// ##
|
|
|
|
# Preberemo vhodne datoteke glede na ID, ki so ga opredelili ##
|
|
# V navodilih so opredeljene komponente in definirana imena vprašanj +
|
|
# ankete 1KA za izvajalca (npr. IZPOUC1) in za predmet (npr. IZPREDa)
|
|
# Vrstice predstavljajo komponente za izvajalca in za predmete.
|
|
# Definirana so tudi imena komponent, ki jih zapišemo v latex tabelah +
|
|
# (stolpec: ime.kratko) ter celotna imena komponent oz. anketnih vprašanj
|
|
# (glej stolpec: ime.dolgo)
|
|
# V navodilih so opredeljene spremenljivke, ki se nanašajo na spremenljivke v bazi (anketa pred in anketa po izpitu) ter
|
|
# dodana nova imena teh spremenljivk, ki smo jih generirali sami zaradi lažjega in hitrejšega pisanja nadalnje kode
|
|
# (klicanje teh spremenljivk, ki se računajo)
|
|
navodila <- openxlsx::read.xlsx(xlsxFile = "Evalvacija/temp/navodila.xlsx", colNames = TRUE, rowNames = TRUE) # Glej excel navodila!
|
|
|
|
#Podatki za: Anketa PRED izpitom
|
|
data_pred_izpitom <- read.csv2(paste0("Evalvacija/temp/anketa_pred_izp_", fakulteta, ".csv"), sep=";", header = T, fill = T, stringsAsFactors = FALSE)
|
|
if (data_pred_izpitom[1,1] == "Ustreznost") {data_pred_izpitom <- data_pred_izpitom[2:nrow(data_pred_izpitom), ]}
|
|
|
|
# Ker je v šifrantu šifra študenta z velikimi črkami, v csv datotekah (anketa PRED in PO) pa z malimi, to ustrezno preoblikujemo (da se ujema)
|
|
# large font
|
|
#data_pred_izpitom$sifstud <- toupper(data_pred_izpitom$sifstud)
|
|
# Umetno generiramo šifre študentov, zato da lahko navidezno zrdužimo podatke pred izpitom in po izpitu
|
|
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
# V letu 2017 je prišlo do spremembe v šifrantih, in sicer v obeh bazah odgovorov študentov
|
|
# 1KA (anketa pred izpitom in anketa PO izpitu) ne sem biti več ŠIFER ŠTUDENTOV, ki pa je v
|
|
# prejšnjih leti bila. Ker smo dve ločeni bazi (anketa pred in po izpitu)
|
|
# združevali na podlagi šifre študentov to več ni mogoče. Zato imamo dve rešitvi:
|
|
# 1) Celotno kodo preuredimo tako, da bomo podatke vlekli iz dveh različnih baz (data_pred_izpitom, data_po_izpitu)
|
|
# 2) Umetno geneiramo šifre študentov le zato, da bazi lahko združimo in ni potrebno preurejati kode na novo.
|
|
# Zaradi velikeha prihranka časa smo izbrali drugo možnost!!!!!!!!!!!
|
|
# Umetno generirani ID študentov so uporabljeni le zaradi združevanja baz, in se jih ne upošteva nikjer drugje (npr računanje povprečij)
|
|
# Združimo torej zato, da ni potrebno razbijati in na novo urejati cele kode
|
|
# Sami generiramo id študentov, ki se bodo začeli z A1 in končali z An (odbisno od števila vrstic)
|
|
data_pred_izpitom$sifstud <- sort(sample(paste0("A", seq(1:nrow(data_pred_izpitom))), replace = FALSE), decreasing = TRUE)
|
|
|
|
# Sortiramo po velikosti oz. A1, A2, A3,.....
|
|
data_pred_izpitom$sifstud <- data_pred_izpitom$sifstud[order(gsub("([A-Z]+)([0-9]+)", "\\1", data_pred_izpitom$sifstud),
|
|
as.numeric(gsub("([A-Z]+)([0-9]+)", "\\2", data_pred_izpitom$sifstud )))]
|
|
# Podatki za: Anketa PO izpitu
|
|
data_po_izpitu <- read.csv2(paste0("Evalvacija/temp/anketa_po_izpitu_", fakulteta, ".csv"), sep = ";", header = T, fill = T, stringsAsFactors = FALSE)
|
|
if (data_po_izpitu[1,1]=="Ustreznost") {data_po_izpitu <- data_po_izpitu[2:nrow(data_po_izpitu), ]}
|
|
|
|
# large font
|
|
#data_po_izpitu$sifstud <- toupper(data_po_izpitu$sifstud)
|
|
|
|
# Enako naredimo še za anketo PO izpitu
|
|
data_po_izpitu$sifstud <- sort(sample(paste0("A", seq(1:nrow(data_po_izpitu))), replace = FALSE), decreasing = FALSE)
|
|
|
|
# Sortiramo po velikosti oz. A1, A2, A3,.....
|
|
data_po_izpitu$sifstud <- data_po_izpitu$sifstud [order(gsub("([A-Z]+)([0-9]+)", "\\1", data_po_izpitu$sifstud ),
|
|
as.numeric(gsub("([A-Z]+)([0-9]+)", "\\2", data_po_izpitu$sifstud)))]
|
|
# Šifrant X1
|
|
# my_data <- read.delim("FGG.txt", sep="#" , header=F, stringsAsFactors = FALSE)
|
|
# my_data <- my_data[,2:ncol(my_data)]
|
|
# colnames(my_data) <- c("IDP", "PREDMET", "IDPEDAGOGA", "NAZIV PEDAGOGA", "NACIN_STUDIJA",
|
|
# "SEMESTER_IZV", "ST_KT", "ST_STUD", "NOSILEC", "STOPNJA", "PRAKSA", "IZVEDBA")
|
|
#
|
|
# my_data["IZVEDBA"] <- NULL
|
|
# my_data["ST_STUD"] <- NULL
|
|
# my_data$IDP <- ifelse(my_data$NACIN_STUDIJA == 1, paste0(my_data$IDP,"_1"), paste0(my_data$IDP,"_2"))
|
|
#
|
|
# my_data$IDP <- as.character(my_data$IDP)
|
|
#
|
|
# sifrant <- read.csv2("sifrant_FGG.csv", sep = ";", header = T, fill = T, stringsAsFactors = FALSE)
|
|
# sifrant["IZVEDBA"] <- NULL
|
|
#
|
|
# sifrantFDV <- merge(my_data, sifrant[c("IDP","IDPEDAGOGA","ST_STUD")], by = c("IDP","IDPEDAGOGA"), all = TRUE, sort = FALSE)
|
|
#
|
|
# sifrantFDV <- sifrantFDV[c("IDP", "PREDMET", "IDPEDAGOGA", "NAZIV PEDAGOGA", "NACIN_STUDIJA",
|
|
# "SEMESTER_IZV", "ST_KT", "ST_STUD", "STOPNJA", "NOSILEC", "PRAKSA")]
|
|
#
|
|
# sifrantFDV <- subset(sifrantFDV, !is.na(PREDMET))
|
|
#
|
|
#
|
|
# write.csv2(sifrantFDV, "sifrant_FGG.csv", row.names = FALSE)
|
|
|
|
sifrant <- read.csv2(paste0("Evalvacija/temp/sifrant_", fakulteta, ".csv"), sep = ";", header = T, fill = T, stringsAsFactors = FALSE)
|
|
|
|
# 7.10.2017 nov sifrant X1, ki se bo uporabil za anlize.
|
|
# za anlize se ne sme uporabiti novega stevila studentov, ker ni realno -
|
|
# tako da lahko se uporabi posodobljene podatke za pedagoge, stevilo studentov pa staro,
|
|
# kot je bilo v prejsnjem sifrantu.
|
|
# Zato moramo število študentov novega šifranta združiti, a ker so lahko nekateri pedagogi v novem
|
|
# šufrantu dodani bo to pominlo da bodo imeli pri ŠT študenov vrednost NA. Zato v kolikor ima
|
|
St.stud.NA.<- list()
|
|
for (i in sifrant$IDP) {
|
|
St.stud.NA.[[i]] <- subset(sifrant, IDP==i)
|
|
if(any(duplicated(St.stud.NA.[[i]]$IDP))){
|
|
if(!all(is.na(St.stud.NA.[[i]]$ST_STUD))){
|
|
St.stud.NA.[[i]]$ST_STUD <- as.numeric(St.stud.NA.[[i]]$ST_STUD)
|
|
St.stud.NA.[[i]]$ST_STUD <- max(St.stud.NA.[[i]]$ST_STUD, na.rm=T)
|
|
}
|
|
}
|
|
}
|
|
sifrant <- do.call(rbind, lapply(St.stud.NA., data.frame, stringsAsFactors=FALSE))
|
|
|
|
|
|
# Šifrant X2
|
|
studenti <- read.csv2(paste0("Evalvacija/temp/studenti_", fakulteta, ".csv"), sep = ";", header = T, fill = T, stringsAsFactors = FALSE)
|
|
# // !!!!!!! // #
|
|
# Remove duplicated rows (remove diplucated students) from data frame študenti.
|
|
# Delamo samo takrat ko generiramo poročila za: Izvajalca, fakulteto in predmet!!
|
|
# Ko generiramo poročila za posamezne PROGRAME, KATEDRE tega ne uporabimo!
|
|
# Podvojeni študenti so zaradi nekaterih fakultet, kjer so dvopredmetni programi
|
|
# (npr. Filozofska fakulteta, Teološka fakulteta, itd.).
|
|
studenti <- studenti[!duplicated(studenti$ID_studenta_.MD5.), ]
|
|
# // !!!!!!! // #
|
|
|
|
# Šifrant X3
|
|
programi.imena <- read.csv2(paste0("Evalvacija/temp/programi_", fakulteta, ".csv"), fill = TRUE, sep = ";",header = T, stringsAsFactors = FALSE)
|
|
# Encoding(programi.imena$Naziv ) <- "UTF-8" # Če so pokvarjeni ČŽŠ-ji zaradi napačnega encodinga v šifrantih to ustrezno popravimo
|
|
# Ločimo univerzitetne in visokošolske programe z vrsto študija, ker so drugače podvojena imena (npr. Družboslovna informatika (uni))
|
|
programi.imena$Naziv <- paste0(programi.imena$Naziv, " (",programi.imena$Vrsta,")") # Imenu programa prilepimo vrsto študija (npr. uni ali vs)
|
|
|
|
## //Preberemo vhodne datoteke// ##
|
|
|
|
|
|
# Naložimo dodatna navodila, ki imajo več nalog: (glej skripto navodila_dodatno-UTF-8.r)
|
|
source('Evalvacija/R/navodila_dodatno-UTF-8.r')
|
|
|
|
|
|
#-------------------------- MOREBITNE NESKLADNOSTI Z 1KA BAZO IN ŠIFRANTOM X1 -----------------------------#
|
|
# Preverimo ali so v bazi kakšni odgovori tistih izvajalcev, ki manjkajo v šifrantu X1. Npr izvajalec ima
|
|
# v bazi (anketa PRED izpitom) odgovore za predmet, ki v šifrantu X1 ni naveden oz. manjka
|
|
# Slednje lahko pivede do erorjev pri generiranju PDF poročil in časovne zamude, kar želimo preprečiti
|
|
library(tidyverse)
|
|
# ANKETA PRED
|
|
podatki.1KA.baza.PRED <- data_pred_izpitom %>%
|
|
gather(contains("sifizv"),
|
|
key = "sifizv",
|
|
value = "ID"
|
|
) %>%
|
|
select_("predmet","sifpredm","ID") %>%
|
|
unique()
|
|
|
|
# Kateri izvajalci so v 1KA bazi (imajo odgovore) a niso v šifrantu X1
|
|
output.pred <- anti_join(podatki.1KA.baza.PRED, sifrant , by = c("sifpredm" ="IDP","ID"="IDPEDAGOGA"))
|
|
# Izločimo vse manjkajoče oz. nevsebinske vrednosti respondenta (-1, -2, -5, itd)
|
|
output.pred <- output.pred[! output.pred$ID %in% junk.komentar, ]
|
|
|
|
|
|
# PREVERI #
|
|
if (nrow(output.pred) >= 1) { # Če je output.pred < 1 to pomeni, da sta bazi 1KA odgovorov (anketa PRED) in šifrant X1 skladni zato lahko nadaljujemo z izračuni
|
|
cat("V bazi 1KA (anketa PRED izpitom) se nahaja izvajalec z ID-jem",paste(output.pred$ID, collapse = ' , '), "ki ga v šifrantu X1 ni!!!!!")
|
|
warning("Izvajalci ki so v 1KA bazi, manjkajo v šifrantu X1")
|
|
}
|
|
# PREVERI #
|
|
|
|
#------------------------- //MOREBITNE NESKLADNOSTI Z 1KA BAZO IN ŠIFRANTOM X1// ---------------------------#
|
|
|
|
|
|
#--------------------------------------- AGREGAT SUMARNIH PREDMETOV -----------------------------------------#
|
|
if (ID == 3000043){ # Če je ID == Fakulteta za Glasbo združimo določene predmete iz šifranta x7 v meta predmet
|
|
source('Evalvacija/R/metapredmeti.r')
|
|
}
|
|
#------------------------------------ //AGREGAT SUMARNIH PREDMETOV// ----------------------------------------#
|
|
|
|
|
|
# Urejanje
|
|
sifrant$PREDMET <- trim(sifrant$PREDMET) # remove extra spaces # trim funkcija je definirana v funkcije.r
|
|
sifrant$PREDMET <- sub("^\\.", "", sifrant$PREDMET) # remove dots in front of course names (FDV!)
|
|
sifrant$NAZIV.PEDAGOGA <- trim(sifrant$NAZIV.PEDAGOGA) # remove extra spaces
|
|
|
|
|
|
# preverba če ni kakšna šifra predmeta * šifra izvajalca v šifrantu podvojena
|
|
# npr. izvajalec je imel napačno šifro in dve izvedbi (redna/izredna) nista imeli različnih šifer
|
|
podvojeniID <- table(paste(sifrant$IDP, sifrant$IDPEDAGOGA, sep = '*'))
|
|
if (max(podvojeniID) > 1) {
|
|
sumljivci <- paste(names(podvojeniID[which(podvojeniID > 1)]), collapse = '\n')
|
|
warning("All course*lecturer ID's in sifrant should be unique!!\nThese are not:\n", sumljivci)
|
|
}
|
|
|
|
# V excel datoteki navodila poiščemo vzorec "izvajalec" in zajamemo vse vrstice,
|
|
# kjer se pojavlja. Enako naredimo še za predmet in študenta.
|
|
# saj gre za komponente, po katerih računamo povprečja, kvantile za izvajalce ali predmete.
|
|
# Kaj komponente? Glej excel datoteko navodila
|
|
navI <- navodila[grepl(pattern='izvajalec.*', rownames(navodila)), ]
|
|
navP <- navodila[grepl(pattern='predmet.*', rownames(navodila)), ]
|
|
navS <- navodila[grepl(pattern='student.*', rownames(navodila)), ]
|
|
|
|
lokacije.izvajalci <- navI[, grepl(pattern='izvajalec.\\d', colnames(navodila))]
|
|
lokacije.predmet <- navP[, 'lokacije.predmet', drop = FALSE] # drop = False, ker želimo ohraniti podatkovni okvir
|
|
lokacije.student <- navS[, 'lokacije.student', drop = FALSE]
|
|
|
|
|
|
## ZDRUŽEVANJE SPREMENLJIVK V VARS.IZVAJALEC in VARS.PREDMET ##
|
|
# Spremenljivke oz komponente po katerih računamo posamezna povprečja bi se dalo tudi neposredno računati z
|
|
# navajanjem imen posameznih sprmenljivk v bazih anketa pred in anketa po izpitu. Npr namesto izvajalec ocena kakovost
|
|
# bi generirali vector s spremenljivko IZMNE1a. Ta spremenljivka je tako poimenovana v bazi.
|
|
# Združimo spremenljivke oz komponente za izvajalca v EXCEL DATOTEKI NAVODILA #
|
|
# Združimo zato, da ni potrebno navajati (npr. računanje) imen posameznih spremenljivk, ki se nahajajo v anketi pred in po.
|
|
# Komponente, ki se bodo računale oz. stolpce združimo v list, katerega nato kličemo pri računanju in pri generiranju tabel
|
|
vars.izvajalec <- list(
|
|
cont = list(vars = rownames(navI)[navI$tip == 'CONT' & !is.na(navI$tip)]), # "CONT" pomeni, da gre za zaprto vprašanje
|
|
text = list(vars = rownames(navI)[navI$tip == 'TEXT' & !is.na(navI$tip)])) # "TEXT" pomeni, da gre za odprto vprašanje (glej npr 26 vrstico v excel datoteki navodila)
|
|
|
|
vars.izvajalec$cont$ime.kratko[vars.izvajalec$cont$vars] <- navI[vars.izvajalec$cont$vars, 'ime.kratko'] # ime.kratko (glej navodila) in tabele pri poročilu izvajalca. Npr ime.kratko se pojavlja v Tabeli 1.1: Poročilo izvajalca
|
|
vars.izvajalec$text$ime.kratko[vars.izvajalec$text$vars] <- navI[vars.izvajalec$text$vars, 'ime.kratko']
|
|
vars.izvajalec$cont$ime.dolgo[vars.izvajalec$cont$vars] <- navI[vars.izvajalec$cont$vars, 'ime.dolgo'] # Celoten tekst zaprtih vprašanj za tabele (glej izpis izvajalca)
|
|
vars.izvajalec$text$ime.dolgo[vars.izvajalec$text$vars] <- navI[vars.izvajalec$text$vars, 'ime.dolgo'] # Celoten tekst odprtih vprašanj za tabele (glej izpis izvajalca)
|
|
vars.izvajalec$cont$pobarvanka[vars.izvajalec$cont$vars] <- navI[vars.izvajalec$cont$vars, 'pobarvanka'] # V excel datoteki opredelimo
|
|
# meje barvanja za posamezno komponento (glej stolpec pobarvanka).
|
|
# Te meje potem zapišemo v funkcijo s katero barvamo povprečja (glej skripto funkcije.r)
|
|
vars.izvajalec$cont$decimalke[vars.izvajalec$cont$vars] <- navI[vars.izvajalec$cont$vars, 'decimalke.tabele'] # zaokroževanje obarvanih vrednosti na 1 decimalko (glej funkcije.r)
|
|
|
|
|
|
# Združimo spremenljivke oz komponente za PREDMETE (PRED IN PO) v EXCEL DATOTEKI navodila#
|
|
# Stolpce oz spremenljivke, ki se računajo združimo v list
|
|
vars.predmet <- list(
|
|
cont=list(vars=c(rownames(navP)[navP$tip == 'CONT' & !is.na(navP$tip) & navP$cont.pred.po.izpitu == "PRED"], # Komponente PRED izpitom
|
|
rownames(navP)[navP$tip == 'CONT' & !is.na(navP$tip) & navP$cont.pred.po.izpitu == "PO"], # Komponente PO izpitu
|
|
rownames(navP)[navP$tip == 'CONT' & !is.na(navP$tip) & navP$cont.pred.po.izpitu == "PRAKSA"])), # Komponente, ki vsebujejo oceno za študijsko prakso
|
|
text=list(vars=rownames(navP)[navP$tip == 'TEXT' & !is.na(navP$tip)]),
|
|
krediti=list(vars=rownames(navP["predmet.ocena.krediti", ])),
|
|
kompetence1=list(vars=rownames(navP["predmet.ocena.kompetence1", ])))
|
|
|
|
# Ločimo kompponente po katerih računamo povprečja za predmete,
|
|
# in sicer komponente PRED IZPITOM, komponente PO IZPITU IN komponente za študijsko PRAKSO (zaradi računanja vrednosti in izpisa poročil)
|
|
vars.predmet$cont$pred <- rownames(navP)[navP$tip == 'CONT' & !is.na(navP$tip) & navP$cont.pred.po.izpitu == "PRED"]
|
|
vars.predmet$cont$po <- rownames(navP)[navP$tip == 'CONT' & !is.na(navP$tip) & navP$cont.pred.po.izpitu == "PO"]
|
|
vars.predmet$cont$praksa <- rownames(navP)[navP$tip == 'CONT' & !is.na(navP$tip) & navP$cont.pred.po.izpitu == "PRAKSA"]
|
|
|
|
vars.predmet$cont$ime.kratko[vars.predmet$cont$vars] <- navP[vars.predmet$cont$vars, 'ime.kratko']
|
|
vars.predmet$text$ime.kratko[vars.predmet$text$vars] <- navP[vars.predmet$text$vars, 'ime.kratko']
|
|
vars.predmet$krediti$ime.kratko[vars.predmet$krediti$vars] <- navP[vars.predmet$krediti$vars, 'ime.kratko']
|
|
vars.predmet$kompetence1$ime.kratko[vars.predmet$kompetence1$vars] <- navP[vars.predmet$kompetence1$vars, 'ime.kratko']
|
|
vars.predmet$cont$ime.dolgo[vars.predmet$cont$vars] <- navP[vars.predmet$cont$vars, 'ime.dolgo']
|
|
vars.predmet$text$ime.dolgo[vars.predmet$text$vars] <- navP[vars.predmet$text$vars, 'ime.dolgo']
|
|
vars.predmet$krediti$ime.dolgo[vars.predmet$krediti$vars] <- navP[vars.predmet$krediti$vars, 'ime.dolgo']
|
|
vars.predmet$kompetence1$ime.dolgo[vars.predmet$kompetence1$vars] <- navP[vars.predmet$kompetence1$vars, 'ime.dolgo']
|
|
|
|
# Labele za komponenti Porabljeno število ur in za kompetence (glej poročilo za izvajalca, poglavje: Število porabljenih ur (anketa PO izpitu))
|
|
# Labele: "1 - Veliko manj" "2 - Nekoliko manj" "3 - Predvideno" "4 - Nekoliko več" "5 - Veliko več"
|
|
vars.predmet$krediti$labele[vars.predmet$krediti$vars] <- strsplit(navP["predmet.ocena.krediti","labele"], split = ",")
|
|
vars.predmet$kompetence1$labele[vars.predmet$kompetence1$vars] <- strsplit(navP["predmet.ocena.kompetence1","labele"], split = ",")
|
|
|
|
# we don't use whole wording for graph labels
|
|
# Labele (graf) za komponento "Ustreznost KT" oz Število porabljenih ur (anketa PO izpitu) <- glej poročilo za izvajalca slika:
|
|
# Frekvenčna porazdelitev za število porabljenih ur (anketa PO izpitu)
|
|
vars.predmet$krediti$labele.graf <- vars.predmet$krediti$labele[vars.predmet$krediti$vars]
|
|
vars.predmet$krediti$labele.graf[[vars.predmet$krediti$vars]][c(2,4)] <- c("2", "4")
|
|
|
|
# Labele za komponento "kompetence" <-glej poročilo za izvajalca
|
|
vars.predmet$kompetence1$labele.graf <- vars.predmet$kompetence1$labele[vars.predmet$kompetence1$vars]
|
|
vars.predmet$kompetence1$labele.graf[[vars.predmet$kompetence1$vars]][c(2,4)] <- c("2", "4")
|
|
|
|
# "3,4,Inf,Inf" So meje barvanja, ki smo jih določili v excel datoteki navodila, in sicer stolpec "pobarvanka"
|
|
# za 3,4,Inf,Inf -> manj kot 3 je bold redeče, 3 ali več in manj kot 4 je samo rdeče, Inf, Inf pomeni da ni zgornje meje za barvanja.
|
|
# Katera barva pripada posamezni vrednosti v tabelah definiramo v skripti funkcije.r
|
|
vars.predmet$cont$pobarvanka[vars.predmet$cont$vars] <- navP[vars.predmet$cont$vars, 'pobarvanka']
|
|
vars.predmet$krediti$pobarvanka[vars.predmet$krediti$vars] <- navP[vars.predmet$krediti$vars, 'pobarvanka']
|
|
vars.predmet$kompetence1$pobarvanka[vars.predmet$kompetence1$vars] <- navP[vars.predmet$kompetence1$vars, 'pobarvanka']
|
|
|
|
# Vse vrednosti bodo v tabelah zaokrožene na eno decimalno mesto. Temu služi stolpec "decimalke.tabele" v excel datoteki navodila
|
|
vars.predmet$cont$decimalke[vars.predmet$cont$vars] <- navP[vars.predmet$cont$vars, 'decimalke.tabele']
|
|
vars.predmet$krediti$decimalke[vars.predmet$krediti$vars] <- navP[vars.predmet$krediti$vars, 'decimalke.tabele']
|
|
vars.predmet$kompetence1$decimalke[vars.predmet$kompetence1$vars] <- navP[vars.predmet$kompetence1$vars, 'decimalke.tabele']
|
|
####################
|
|
|
|
# Kot smo že omenili želimo združiti bazi, kar naredimo na podlagi šifer predmetov in šifer študentov, ki smo
|
|
# jih za leto 2016/2017 simulirali.
|
|
# merging data from before and after exam databases - each student must have only 1 row for each course
|
|
data <- merge(data_pred_izpitom, data_po_izpitu, by = c(navodila["student.sifra","lokacije.student"],
|
|
navodila["predmet.sifra","lokacije.predmet"]), all = TRUE)
|
|
|
|
#######################################################################################
|
|
# premetavanje
|
|
#######################################################################################
|
|
|
|
######################
|
|
# PODATKI ZA IZVAJALCE (premetavanje po anketah -> po izvajalcih)
|
|
#####################
|
|
# Število izvajalcev v bazi
|
|
lokacije.izvajalci.names <- names(data)[grepl( "izvajalec." , names(data))]
|
|
lokacije.izvajalci <- lokacije.izvajalci[,1:length(lokacije.izvajalci.names)]
|
|
data.izvajalci <- NULL
|
|
for (i in names(lokacije.izvajalci)){ # lokacije.izvajalci in lokacije.predmet <- v excel datoteki Navodila
|
|
data.temp <- data[c(lokacije.predmet[, 1], as.vector(lokacije.izvajalci[[i]]),"idprog.x","letnik.x","program.x","lurker.x")] # spremenljivke ki smo jih določili glede na predavatelje v csv uvoženi tabeli
|
|
names(data.temp) <- c(rownames(lokacije.predmet), rownames(lokacije.izvajalci), "ID_vrsta_studija","Letnik","Naziv","lurker")
|
|
data.temp <- subset(data.temp, izvajalec.sifra > 0) # samo kjer je naveden izvajalec
|
|
if (is.null(data.izvajalci)) {
|
|
data.izvajalci <- data.temp
|
|
} else {
|
|
data.izvajalci <- rbind(data.izvajalci,data.temp)
|
|
}
|
|
}
|
|
|
|
# Izločimo vse manjkajoče vrednosti
|
|
# setting missing values and keeping some (defined in navodila.xlsx in column missing.table) for frequency tables
|
|
someMissVars <- rownames(navodila[!is.na(navodila$missings.table), ])
|
|
data.izvajalci.someMiss <- data.izvajalci[c("predmet.sifra","izvajalec.sifra",someMissVars)]
|
|
for (var in c(vars.predmet$cont$vars,vars.predmet$text$vars,vars.predmet$krediti$vars,
|
|
vars.predmet$kompetence1$vars,vars.izvajalec$cont$vars,vars.izvajalec$text$vars)) {
|
|
miss <- unlist(strsplit(navodila[var,]$missings, ","))
|
|
data.izvajalci[, var][data.izvajalci[, var] %in% miss] <- NA
|
|
if (var %in% c(vars.predmet$cont$vars,vars.predmet$krediti$vars,
|
|
vars.predmet$kompetence1$vars,vars.izvajalec$cont$vars)) {
|
|
data.izvajalci[, var] <- as.numeric(data.izvajalci[, var])
|
|
}
|
|
if (var %in% someMissVars) {
|
|
someMissVals <- matrix(unlist(strsplit(unlist(strsplit(navodila[var,]$missings.table, ",")), "=")), ncol = 2, byrow = TRUE)
|
|
miss <- miss[!(miss %in% someMissVals[, 1])]
|
|
data.izvajalci.someMiss[, var][data.izvajalci.someMiss[, var] %in% miss] <- NA
|
|
for (missVar in 1:nrow(someMissVals)) {
|
|
data.izvajalci.someMiss[, var][data.izvajalci.someMiss[, var] == someMissVals[missVar,1] &
|
|
!is.na(data.izvajalci.someMiss[, var])] <- someMissVals[missVar,2]
|
|
}
|
|
}
|
|
}
|
|
# all values with some miss for tables
|
|
# Glej tabelo Povprečja in deleži kategorij odgovorov za komponente pedagoškega dela izvajalca pri predmetu (anketa PRED izpitom)"
|
|
izvajalec.someMiss <- sort(unique(as.vector(as.matrix(data.izvajalci.someMiss[,vars.izvajalec$cont$vars]))))
|
|
|
|
# Check if values are missing. We need column_name for table making
|
|
# V poročilu za izvajalca glej podpoglavje: Frekvenčna porazdelitev ocen komponent pedagoškega dela izvajalca
|
|
# V primeru, da kakšna vrednost manjka jo ustvarimo, sicer ko poženemo koda-izvajalec_predmet ne generira tabel
|
|
column_name <- c("1","2","3","4","5","Ne želim odgovoriti","Nimam dovolj informacij")
|
|
|
|
if (length(which(izvajalec.someMiss %in% column_name)) < 7) {
|
|
# Če so kakšne manjkajoče vrednosti, ki se dodajajo v tabele kot imena stolpcev za izvajalca
|
|
Missing <- setdiff(column_name, izvajalec.someMiss) # Find names of missing columns
|
|
izvajalec.someMiss <- c(Missing,izvajalec.someMiss)
|
|
izvajalec.someMiss <- sort(izvajalec.someMiss)
|
|
}
|
|
# //column_name// #
|
|
|
|
|
|
data.izvajalci <- data.izvajalci[order(data.izvajalci$izvajalec.sifra, data.izvajalci$predmet.sifra), ]
|
|
# Število vseh odgovorov. To so odgovori na predmet in izvajalca
|
|
# '-1' neodgovorjeno vprašanje, '-2' preskok zaradi pogoja (IF)
|
|
data.izvajalci$veljavna.vsiodgovori <- data.izvajalci$predmet.izpolnjeval.pred == -1 & (data.izvajalci$izvajalec.jepouceval == 1 | data.izvajalci$izvajalec.jepouceval == 2 | data.izvajalci$izvajalec.jepouceval == -2)
|
|
# Število odgovorov izvajalca
|
|
# ali je anketa veljavna za izvajalca; ali je student ni izpolnjeval (je pa začel anketo)
|
|
data.izvajalci$veljavna <- data.izvajalci$predmet.izpolnjeval.pred == -1 & (data.izvajalci$izvajalec.jepouceval == 1 | data.izvajalci$izvajalec.jepouceval == -2)
|
|
data.izvajalci$zavrnjena <- (!data.izvajalci$veljavna & !is.na(data.izvajalci$predmet.izpolnjeval.pred) & !is.na(data.izvajalci$izvajalec.jepouceval) & !(data.izvajalci$izvajalec.jepouceval == 2))
|
|
data.izvajalci$nipouceval <- data.izvajalci$izvajalec.jepouceval == 2 # Če je študent v anketi pred izpitom odgovoril, da ga izvajalec pri tem predmetu ni poučeval
|
|
# adding student data (year and programme)
|
|
data.izvajalci <- merge(data.izvajalci, programi.imena[,c("ID", "Naziv")], by.x = "ID_vrsta_studija", by.y = "ID", all.x = TRUE, sort = FALSE)
|
|
names(data.izvajalci)[match(c("ID_vrsta_studija","Letnik","Naziv.y"), names(data.izvajalci))] <- c("student.program.sifra","student.letnik","student.program.ime")
|
|
|
|
|
|
#####################
|
|
# PODATKI ZA PREDMETE
|
|
#####################
|
|
data.predmeti <- data[c(lokacije.predmet[, 1], lokacije.student[, 1],"idprog.x","letnik.x","program.x", "lurker.x")] # Združimo spremenljivke v lokacije.predmet[, 1] in šifro študentov
|
|
names(data.predmeti) <- c(rownames(lokacije.predmet), rownames(lokacije.student),"ID_vrsta_studija","Letnik","Naziv","lurker")
|
|
someMissVars <- rownames(navP[!is.na(navP$missings.table), ])
|
|
data.predmeti.someMiss <- data.predmeti[c("predmet.sifra", someMissVars)]
|
|
# setting missing values and keeping some (defined in navodila.xlsx in column missing.table) for frequency tables
|
|
for (var in c(vars.predmet$cont$vars,vars.predmet$text$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)) {
|
|
miss <- unlist(strsplit(navodila[var,]$missings, ","))
|
|
data.predmeti[, var][data.predmeti[, var] %in% miss] <- NA
|
|
if (var %in% c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)) {
|
|
data.predmeti[, var] <- as.numeric(data.predmeti[, var])
|
|
}
|
|
if (var %in% someMissVars) {
|
|
someMissVals <- matrix(unlist(strsplit(unlist(strsplit(navodila[var,]$missings.table, ",")), "=")), ncol = 2, byrow = TRUE)
|
|
miss <- miss[!(miss %in% someMissVals[, 1])]
|
|
data.predmeti.someMiss[, var][data.predmeti.someMiss[, var] %in% miss] <- NA
|
|
for (missVar in 1:nrow(someMissVals)) {
|
|
data.predmeti.someMiss[, var][data.predmeti.someMiss[, var] == someMissVals[missVar, 1] &
|
|
!is.na(data.predmeti.someMiss[, var])] <- someMissVals[missVar, 2]
|
|
}
|
|
}
|
|
}
|
|
# all values with some miss for tables
|
|
predmet.someMiss <- sort(unique(as.vector(as.matrix(data.predmeti.someMiss[, vars.predmet$cont$vars]))))
|
|
if(any(predmet.someMiss=="")) {
|
|
predmet.someMiss <- predmet.someMiss[predmet.someMiss != ""]
|
|
|
|
}
|
|
|
|
# data.predmeti$predmet.sifra <- as.numeric(data.predmeti$predmet.sifra)
|
|
data.predmeti <- data.predmeti[order(data.predmeti$predmet.sifra),]
|
|
# ali je anketa veljavna za predmet; ali je student ni izpolnjeval (je pa začel anketo)
|
|
# '-1' neodgovorjeno vprašanje
|
|
data.predmeti$veljavna <- data.predmeti$predmet.izpolnjeval.pred == -1 & !is.na(data.predmeti$predmet.izpolnjeval.pred)
|
|
data.predmeti$veljavna_po_izpitu <- data.predmeti$predmet.izpolnjeval.po == -1 & !is.na(data.predmeti$predmet.izpolnjeval.po)
|
|
data.predmeti$zavrnjena <- (!data.predmeti$veljavna & !is.na(data.predmeti$predmet.izpolnjeval.pred))
|
|
data.predmeti$zavrnjena_po_izpitu <- (!data.predmeti$veljavna_po_izpitu & !is.na(data.predmeti$predmet.izpolnjeval.po))
|
|
# adding student data (year and programme)
|
|
data.predmeti <- merge(data.predmeti, programi.imena[,c("ID", "Naziv")], by.x="ID_vrsta_studija", by.y="ID", all.x=TRUE, sort=FALSE)
|
|
names(data.predmeti)[match(c("ID_vrsta_studija","Letnik","Naziv.y"), names(data.predmeti))] <- c("student.program.sifra","student.letnik","student.program.ime")
|
|
|
|
# ali so v bazi kakšni predmeti ki jih ni v šifrantu
|
|
test2 <- unique(data.predmeti$predmet.sifra)[!(unique(data.predmeti$predmet.sifra) %in% unique(sifrant$IDP))]
|
|
if (length(test2) > 0) {
|
|
test2 <- paste(test2, collapse='\n')
|
|
warning('V šifrantu ni predmetov, ki pa so v bazi:\n', test2)
|
|
}
|
|
|
|
# zapis obeh baz na katerih se dela naprej
|
|
#write.csv2(data.izvajalci, paste0("results/data.izvajalci_", fakulteta, ".csv"))
|
|
# #write.csv2(data.predmeti, paste0("results/data.predmeti_", fakulteta, ".csv"))
|
|
data.izvajalci <- data.izvajalci[!(data.izvajalci$predmet.sifra %in% output.pred$sifpredm &
|
|
data.izvajalci$izvajalec.sifra %in% output.pred$ID),]
|
|
|
|
|
|
#######################################################################################
|
|
# izračuni opisnih statistik
|
|
#######################################################################################
|
|
|
|
###############
|
|
## IZVAJALCI ##
|
|
###############
|
|
# povprečja
|
|
izvMean <- aggregate(data.izvajalci[vars.izvajalec$cont$vars],by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = mean, na.rm = TRUE)
|
|
colnames(izvMean)[3:ncol(izvMean)] <- paste0(vars.izvajalec$cont$vars,"_mean")
|
|
|
|
# mediane
|
|
izvMedian <- aggregate(data.izvajalci[vars.izvajalec$cont$vars], by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = median, na.rm = TRUE)
|
|
colnames(izvMedian)[3:ncol(izvMedian)] <- paste0(vars.izvajalec$cont$vars,"_median")
|
|
|
|
# sd
|
|
izvSd <- aggregate(data.izvajalci[vars.izvajalec$cont$vars],by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = sd, na.rm = TRUE)
|
|
colnames(izvSd)[3:ncol(izvSd)] <- paste0(vars.izvajalec$cont$vars,"_sd")
|
|
|
|
# min
|
|
izvMin <- aggregate(data.izvajalci[vars.izvajalec$cont$vars],by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = min, na.rm = TRUE)
|
|
colnames(izvMin)[3:ncol(izvMin)] <- paste0(vars.izvajalec$cont$vars,"_min")
|
|
izvMin[izvMin==Inf] <- NA
|
|
|
|
# max
|
|
izvMax <- aggregate(data.izvajalci[vars.izvajalec$cont$vars],by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = max, na.rm = TRUE)
|
|
colnames(izvMax)[3:ncol(izvMax)] <- paste0(vars.izvajalec$cont$vars,"_max")
|
|
izvMax[izvMax==-Inf] <- NA
|
|
|
|
# N posamezne spremenljivke
|
|
izvN <- aggregate(data.izvajalci[vars.izvajalec$cont$vars], by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN=function(x) sum(!is.na(x)))
|
|
colnames(izvN)[3:ncol(izvN)] <- paste0(vars.izvajalec$cont$vars,"_N")
|
|
|
|
# N anket
|
|
izvNanket <- aggregate(data.izvajalci$veljavna,by=data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = sum)
|
|
colnames(izvNanket)[3] <- "N_anket"
|
|
|
|
# N vseh odgovorov
|
|
izvNanketvsiodgovori <- aggregate(data.izvajalci$veljavna.vsiodgovori,by=data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = sum)
|
|
colnames(izvNanketvsiodgovori)[3] <- "N_anketSkupaj"
|
|
|
|
# N zavrnjenih anket
|
|
izvNzavrnjenih <- aggregate(data.izvajalci$zavrnjena,by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = sum)
|
|
colnames(izvNzavrnjenih)[3] <- "N_zavrnjenih"
|
|
|
|
|
|
# N Lurkerjev PRED izpitom
|
|
data.izvajalci$lurker[data.izvajalci$lurker==0] <- NA
|
|
izvNLurkerji <- aggregate(as.numeric(data.izvajalci$lurker), by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")],FUN=function(x) sum(!is.na(x)))
|
|
colnames(izvNLurkerji)[3] <- "N_lurkerjev_ivz"
|
|
|
|
# N anket: Izvajalec ni poučeval
|
|
izvNipouceval <- aggregate(data.izvajalci$nipouceval,by=data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = sum)
|
|
colnames(izvNipouceval)[3] <- "Ni_pouceval"
|
|
|
|
# Prvi kvartil Q1
|
|
izvQ1 <- aggregate(data.izvajalci[vars.izvajalec$cont$vars], by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = quantile, probs = c(0.25),na.rm=T)
|
|
colnames(izvQ1)[3:ncol(izvQ1)] <- paste0(vars.izvajalec$cont$vars,"_Q1")
|
|
|
|
# Tretji kvartil
|
|
izvQ3 <- aggregate(data.izvajalci[vars.izvajalec$cont$vars], by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = quantile, probs = c(0.75),na.rm=T)
|
|
colnames(izvQ3)[3:ncol(izvQ3)] <- paste0(vars.izvajalec$cont$vars,"_Q3")
|
|
|
|
# Prvi decil
|
|
izvD1 <- aggregate(data.izvajalci[vars.izvajalec$cont$vars], by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = quantile, probs = c(0.1), type=5,na.rm=T)
|
|
colnames(izvD1)[3:ncol(izvD1)] <- paste0(vars.izvajalec$cont$vars,"_D1")
|
|
|
|
# Deveti decil
|
|
izvD9 <- aggregate(data.izvajalci[vars.izvajalec$cont$vars], by = data.izvajalci[c("predmet.sifra","izvajalec.sifra")], FUN = quantile, probs = c(0.9), type=5,na.rm=T)
|
|
colnames(izvD9)[3:ncol(izvD9)] <- paste0(vars.izvajalec$cont$vars,"_D9")
|
|
|
|
# Zdužimo opisne statistike izvajalcev
|
|
povprecja.izvajalci <- merge(izvMean, izvSd, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvMin,by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvMax, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvN, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvNanket, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvNanketvsiodgovori, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvNzavrnjenih, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvNipouceval, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvQ1, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvQ3, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvMedian , by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvD1, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvD9, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, izvNLurkerji, by = c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
|
|
|
|
# združit s šifrantom
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, sifrant,
|
|
by.x = c("izvajalec.sifra", "predmet.sifra"),
|
|
by.y = c("IDPEDAGOGA", "IDP"), all.x = TRUE, sort = FALSE)
|
|
|
|
# write.csv2(povprecja.izvajalci, paste0("results/povprecja.izvajalci_", fakulteta, ".csv"))
|
|
|
|
|
|
# zakrivanje vrednosti kjer ni dovolj enot
|
|
premalo <- povprecja.izvajalci[paste0(vars.izvajalec$cont$vars,"_N")] < minEnot
|
|
povprecja.izvajalci[paste0(vars.izvajalec$cont$vars,"_mean")][premalo] <- NA
|
|
povprecja.izvajalci[paste0(vars.izvajalec$cont$vars,"_sd")][premalo] <- NA
|
|
povprecja.izvajalci[paste0(vars.izvajalec$cont$vars,"_min")][premalo] <- NA
|
|
povprecja.izvajalci[paste0(vars.izvajalec$cont$vars,"_max")][premalo] <- NA
|
|
|
|
|
|
# Kjer je negativno število pomeni, da gre za več vpisanih študentov, kot jih je v bazi oz spremenljivki ST_STUD
|
|
povprecja.izvajalci$ST_STUD <- ifelse(povprecja.izvajalci$ST_STUD < as.numeric(povprecja.izvajalci$N_anket) + as.numeric(povprecja.izvajalci$N_zavrnjenih),
|
|
as.numeric(povprecja.izvajalci$N_anket) + as.numeric(povprecja.izvajalci$N_zavrnjenih),povprecja.izvajalci$ST_STUD)
|
|
|
|
# povprečje vseh komponent izvajalca
|
|
povprecja.izvajalci$izvajalec.ocena.SKUPAJ <- rowMeans(povprecja.izvajalci[paste0(vars.izvajalec$cont$vars,"_mean")], na.rm = T)
|
|
|
|
# % sodelujocih
|
|
povprecja.izvajalci$sodelujocih.pct <- povprecja.izvajalci$N_anket / as.numeric(povprecja.izvajalci$ST_STUD) * 100
|
|
|
|
# % zavrnjenih
|
|
povprecja.izvajalci$zavrnjenih.pct <- povprecja.izvajalci$N_zavrnjenih / as.numeric(povprecja.izvajalci$ST_STUD) * 100
|
|
|
|
# % Ni pouceval
|
|
povprecja.izvajalci$nipouceval.pct <- povprecja.izvajalci$Ni_pouceval / as.numeric(povprecja.izvajalci$ST_STUD) * 100
|
|
|
|
## N in % neodzivnih
|
|
#intersect(as, povprecja.izvajalci$ST_STUD)
|
|
povprecja.izvajalci$N_neodzivnih <- as.numeric(povprecja.izvajalci$ST_STUD) - povprecja.izvajalci$N_anketSkupaj - povprecja.izvajalci$N_zavrnjenih
|
|
povprecja.izvajalci$neodzivnih.pct <- povprecja.izvajalci$N_neodzivnih / as.numeric(povprecja.izvajalci$ST_STUD) * 100
|
|
## //IZVAJALCI// ##
|
|
|
|
##############
|
|
## PREDMETI ##
|
|
##############
|
|
# povprečja
|
|
predMean <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.predmeti["predmet.sifra"], FUN = mean, na.rm = TRUE)
|
|
colnames(predMean)[2:ncol(predMean)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_mean")
|
|
|
|
# Mediane
|
|
predMedian <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.predmeti["predmet.sifra"], FUN = median, na.rm = TRUE)
|
|
colnames(predMedian)[2:ncol(predMedian)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_median")
|
|
|
|
# sd
|
|
predSd <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.predmeti["predmet.sifra"], FUN = sd, na.rm = TRUE)
|
|
colnames(predSd)[2:ncol(predSd)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_sd")
|
|
|
|
# min
|
|
predMin <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars)], by = data.predmeti["predmet.sifra"], FUN = min, na.rm = TRUE)
|
|
colnames(predMin)[2:ncol(predMin)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars),"_min")
|
|
predMin[predMin==Inf] <- NA
|
|
|
|
# max
|
|
predMax <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars)], by = data.predmeti["predmet.sifra"], FUN = max, na.rm = TRUE)
|
|
colnames(predMax)[2:ncol(predMax)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars),"_max")
|
|
predMax[predMax==-Inf] <- NA
|
|
|
|
# N posamezne spremenljivke
|
|
predN <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.predmeti["predmet.sifra"], FUN=function(x) sum(!is.na(x)))
|
|
colnames(predN)[2:ncol(predN)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_N")
|
|
|
|
# N answering before and after exam
|
|
predNanket <- aggregate(data.predmeti$veljavna, by = data.predmeti["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket)[2] <- "N_anket"
|
|
predNanket_po_izpitu <- aggregate(data.predmeti$veljavna_po_izpitu, by = data.predmeti["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket_po_izpitu)[2] <- "N_anket_po_izpitu"
|
|
|
|
# N didn't want to answer before and after exam
|
|
predNzavrnjenih <- aggregate(data.predmeti$zavrnjena, by = data.predmeti["predmet.sifra"], FUN = sum)
|
|
colnames(predNzavrnjenih)[2] <- "N_zavrnjenih"
|
|
|
|
# N Lurkerjev PRED izpitom
|
|
data.predmeti$lurker[data.predmeti$lurker==0] <- NA
|
|
predNLurkerji <- aggregate(as.numeric(data.predmeti$lurker), by = data.predmeti["predmet.sifra"],FUN=function(x) sum(!is.na(x)))
|
|
colnames(predNLurkerji)[2] <- "N_lurkerjev_pred"
|
|
|
|
|
|
predNzavrnjenih_po_izpitu <- aggregate(data.predmeti$zavrnjena_po_izpitu, by = data.predmeti["predmet.sifra"], FUN = sum)
|
|
colnames(predNzavrnjenih_po_izpitu)[2] <- "N_zavrnjenih_po_izpitu"
|
|
|
|
# razporejanje ocen za kreditne točke (n & %) # Ustreznost KT
|
|
krediti_razporejanje_n <- table(data.predmeti$predmet.sifra, data.predmeti$predmet.ocena.krediti)
|
|
krediti_razporejanje_pct <- prop.table(krediti_razporejanje_n, 1) * 100
|
|
if (!is.null(dimnames(krediti_razporejanje_n)[[2]])) {
|
|
colnames(krediti_razporejanje_n) <- paste0("krediti_razporejanje_n_", colnames(krediti_razporejanje_n))
|
|
colnames(krediti_razporejanje_pct) <- paste0("krediti_razporejanje_pct_", colnames(krediti_razporejanje_pct))
|
|
krediti_razporejanje_n <- cbind(as.data.frame.matrix(krediti_razporejanje_n), predmet.sifra=rownames(krediti_razporejanje_n))
|
|
krediti_razporejanje_pct <- cbind(as.data.frame.matrix(krediti_razporejanje_pct), predmet.sifra=rownames(krediti_razporejanje_pct))
|
|
} else {krediti_razporejanje_n <- NULL
|
|
krediti_razporejanje_pct <- NULL}
|
|
|
|
# razporejanje ocen za kompetence1 (n & %)
|
|
kompetence1_razporejanje_n <- table(data.predmeti$predmet.sifra, data.predmeti$predmet.ocena.kompetence1)
|
|
kompetence1_razporejanje_pct <- prop.table(kompetence1_razporejanje_n, 1) * 100
|
|
if (!is.null(dimnames(kompetence1_razporejanje_n)[[2]])) {
|
|
colnames(kompetence1_razporejanje_n) <- paste0("kompetence1_razporejanje_n_", colnames(kompetence1_razporejanje_n))
|
|
colnames(kompetence1_razporejanje_pct) <- paste0("kompetence1_razporejanje_pct_", colnames(kompetence1_razporejanje_pct))
|
|
kompetence1_razporejanje_n <- cbind(as.data.frame.matrix(kompetence1_razporejanje_n), predmet.sifra=rownames(kompetence1_razporejanje_n))
|
|
kompetence1_razporejanje_pct <- cbind(as.data.frame.matrix(kompetence1_razporejanje_pct), predmet.sifra=rownames(kompetence1_razporejanje_pct))
|
|
} else {kompetence1_razporejanje_n <- NULL
|
|
kompetence1_razporejanje_pct <- NULL}
|
|
|
|
|
|
# Prvi kvartil
|
|
predQ1 <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.predmeti["predmet.sifra"], FUN = quantile, probs = c(0.25),na.rm=T)
|
|
colnames(predQ1)[2:ncol(predQ1)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_Q1")
|
|
|
|
# Tretji kvartil
|
|
predQ3 <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.predmeti["predmet.sifra"], FUN = quantile, probs = c(0.75),na.rm=T)
|
|
colnames(predQ3)[2:ncol(predQ3)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_Q3")
|
|
|
|
# Prvi decil
|
|
predD1 <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.predmeti["predmet.sifra"], FUN = quantile, probs = c(0.1), type=5,na.rm=T)
|
|
colnames(predD1)[2:ncol(predD1)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_D1")
|
|
|
|
# Deveti decil
|
|
predD9 <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.predmeti["predmet.sifra"], FUN = quantile, probs = c(0.9), type=5,na.rm=T)
|
|
colnames(predD9)[2:ncol(predD9)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_D9")
|
|
|
|
|
|
# Združimo izračunane statistike za predmete
|
|
povprecja.predmeti <- merge(predMean, predSd, by="predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predMin, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predMax, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predN, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predQ1, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predQ3, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predMedian, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predD1, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predD9, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predNLurkerji, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
|
|
|
|
|
|
|
|
# Če spremenljivka krediti_razporejanje_n ni NULL, jo združimo v popvrecja.predmeti sicer ne.
|
|
if (!is.null(krediti_razporejanje_n)) {
|
|
povprecja.predmeti <- merge(povprecja.predmeti, krediti_razporejanje_n, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, krediti_razporejanje_pct, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
}
|
|
if (!is.null(kompetence1_razporejanje_n)) {
|
|
povprecja.predmeti <- merge(povprecja.predmeti, kompetence1_razporejanje_n, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, kompetence1_razporejanje_pct, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
}
|
|
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predNanket, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predNanket_po_izpitu, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predNzavrnjenih, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
povprecja.predmeti <- merge(povprecja.predmeti, predNzavrnjenih_po_izpitu, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
|
|
# združit s šifrantom
|
|
povprecja.predmeti <- merge(povprecja.predmeti, unique(sifrant[!(colnames(sifrant) %in% c("IDPEDAGOGA", "NAZIV.PEDAGOGA", "ST_KT", "ST_UR", "NOSILEC"))]),
|
|
by.x = "predmet.sifra", by.y = "IDP", all.x = TRUE, sort = FALSE)
|
|
|
|
|
|
# write.csv2(povprecja.predmeti, paste0("results/povprecja.predmeti_", fakulteta, ".csv"))
|
|
|
|
# zakrivanje vrednosti kjer ni dovolj enot
|
|
premalo <- povprecja.predmeti[paste0(vars.predmet$cont$vars,"_N")] < minEnot
|
|
povprecja.predmeti[paste0(vars.predmet$cont$vars,"_mean")][premalo] <- NA
|
|
povprecja.predmeti[paste0(vars.predmet$cont$vars,"_sd")][premalo] <- NA
|
|
povprecja.predmeti[paste0(vars.predmet$cont$vars,"_min")][premalo] <- NA
|
|
povprecja.predmeti[paste0(vars.predmet$cont$vars,"_max")][premalo] <- NA
|
|
# še za kredite
|
|
premalo <- povprecja.predmeti[paste0("predmet.ocena.krediti_N")] < minEnot
|
|
povprecja.predmeti["predmet.ocena.krediti_mean"][premalo] <- NA
|
|
|
|
|
|
# Če so manjkajoče vrednosti (1:5) in eden izmed stolpcev od 1:5 manjka, poglej kateri manjka ga definiraj in mu pripiši vrednost 0.
|
|
# Manjkajoče vrednosti nastanejo, ker gre za vprašanje na lestvici od 1:5, in npr. vrednost 1 ni označil nihče
|
|
# Definirane stolpce od 1:5 potrebujemo pri poročilu za izvajalca, in sicer pri generiranju tabel: poročilo za izvajalca
|
|
# Glej npr tabelo: Frekvenčna porazdelitev za število porabljenih ur* (anketa PO izpitu)
|
|
if (any(paste0("krediti_razporejanje_n_", 1:5) %in% colnames(povprecja.predmeti)==FALSE)) {
|
|
# povprecja.predmeti = data.frame
|
|
missing <- paste0("krediti_razporejanje_n_",1:5)[paste0("krediti_razporejanje_n_", 1:5) %in% colnames(povprecja.predmeti) == FALSE]
|
|
res <- list()
|
|
for(i in missing){
|
|
povprecja.predmeti[[i]] <- rep(0, nrow(povprecja.predmeti))
|
|
}
|
|
}
|
|
|
|
# Če je število odogovorov manjše od 4, mu pripišemo NA
|
|
povprecja.predmeti[paste0("krediti_razporejanje_n_", 1:5)][cbind(premalo,premalo,premalo,premalo,premalo)] <- NA
|
|
|
|
# Če so manjkajoče vrednosti in eden izmed stolpcev od 1:5 manjka, poglej kateri manjka in ga definiraj
|
|
if (any(paste0("krediti_razporejanje_pct_", 1:5) %in% colnames(povprecja.predmeti)==FALSE)) {
|
|
# x = data.frame
|
|
missing <- paste0("krediti_razporejanje_pct_",1:5)[paste0("krediti_razporejanje_pct_", 1:5) %in% colnames(povprecja.predmeti) == FALSE]
|
|
res <- list()
|
|
for(i in missing){
|
|
povprecja.predmeti[[i]] <- rep(0,nrow(povprecja.predmeti))
|
|
}
|
|
}
|
|
povprecja.predmeti[paste0("krediti_razporejanje_pct_", 1:5)][cbind(premalo,premalo,premalo,premalo,premalo)] <- NA
|
|
|
|
# In za kompetence
|
|
premalo <- povprecja.predmeti[paste0("predmet.ocena.kompetence1_N")] < minEnot
|
|
povprecja.predmeti["predmet.ocena.kompetence1_mean"][premalo] <- NA
|
|
|
|
|
|
if (any(paste0("kompetence1_razporejanje_n_", 1:5) %in% colnames(povprecja.predmeti)==FALSE)) {
|
|
# x = data.frame
|
|
missing <- paste0("kompetence1_razporejanje_n_",1:5)[paste0("kompetence1_razporejanje_n_", 1:5) %in% colnames(povprecja.predmeti) == FALSE]
|
|
res <- list()
|
|
for(i in missing){
|
|
povprecja.predmeti[[i]] <- rep(0,nrow(povprecja.predmeti))
|
|
}
|
|
}
|
|
povprecja.predmeti[paste0("kompetence1_razporejanje_n_", 1:5)][cbind(premalo,premalo,premalo,premalo,premalo)] <- NA
|
|
|
|
|
|
# Če so manjkajoče vrednosti in eden izmed stolpcev od 1:5 manjka, poglej kateri manjka in ga definiraj
|
|
if (any(paste0("kompetence1_razporejanje_pct_", 1:5) %in% colnames(povprecja.predmeti)==FALSE)) {
|
|
# x = data.frame
|
|
missing <- paste0("kompetence1_razporejanje_pct_",1:5)[paste0("kompetence1_razporejanje_pct_", 1:5) %in% colnames(povprecja.predmeti) == FALSE]
|
|
res <- list()
|
|
for(i in missing){
|
|
povprecja.predmeti[[i]] <- rep(0,nrow(povprecja.predmeti))
|
|
}
|
|
}
|
|
povprecja.predmeti[paste0("kompetence1_razporejanje_pct_", 1:5)][cbind(premalo,premalo,premalo,premalo,premalo)] <- NA
|
|
|
|
# average of components - all, before, after exam
|
|
povprecja.predmeti$predmet.ocena.SKUPAJ <- rowMeans(povprecja.predmeti[paste0(vars.predmet$cont$vars,"_mean")], na.rm = T)
|
|
povprecja.predmeti$predmet.ocena.SKUPAJ.pred <- rowMeans(povprecja.predmeti[paste0(vars.predmet$cont$pred,"_mean")], na.rm = T)
|
|
# Ker je v NAKETI PO IPZITU komponenta "kompetence" merjena na drugačni lestvici od komponent:Vsebine, Naloge, Ocenjevanje, je ne upoštevamo
|
|
# Pri izračunu skupnega povprečja in zato je skupno povprečje sestavljeno iz vseh spremenljivk - 1 oz. vars.predmet$cont$po[-1]
|
|
povprecja.predmeti$predmet.ocena.SKUPAJ.po <- rowMeans(povprecja.predmeti[paste0(vars.predmet$cont$po[-1],"_mean")], na.rm = T)
|
|
povprecja.predmeti$predmet.ocena.SKUPAJ.praksa <- rowMeans(povprecja.predmeti[paste0(vars.predmet$cont$praksa,"_mean")], na.rm = T)
|
|
|
|
# Število študentov pri posameznem predmetu: Spremenimo iz character v numeric
|
|
povprecja.predmeti$ST_STUD <- as.numeric(povprecja.predmeti$ST_STUD)
|
|
|
|
# Kjer je negativno število pomeni, da gre za več vpisanih študentov, kot jih je v bazi oz spremenljivki ST_STUD
|
|
povprecja.predmeti$ST_STUD <- ifelse(povprecja.predmeti$ST_STUD < as.numeric(povprecja.predmeti$N_anket) + as.numeric(povprecja.predmeti$N_zavrnjenih),
|
|
as.numeric(povprecja.predmeti$N_anket) + as.numeric(povprecja.predmeti$N_zavrnjenih), povprecja.predmeti$ST_STUD)
|
|
|
|
# % odgovora
|
|
povprecja.predmeti$sodelujocih.pct <- povprecja.predmeti$N_anket / povprecja.predmeti$ST_STUD * 100
|
|
povprecja.predmeti$sodelujocih.pct_po_izpitu <- povprecja.predmeti$N_anket_po_izpitu / povprecja.predmeti$ST_STUD * 100
|
|
# % zavrnjenih
|
|
povprecja.predmeti$zavrnjenih.pct <- povprecja.predmeti$N_zavrnjenih / povprecja.predmeti$ST_STUD * 100
|
|
povprecja.predmeti$zavrnjenih.pct_po_izpitu <- povprecja.predmeti$N_zavrnjenih_po_izpitu / povprecja.predmeti$ST_STUD * 100
|
|
# N in % neodzivnih (ni pristopilo k anketi)
|
|
povprecja.predmeti$N_neodzivnih <- povprecja.predmeti$ST_STUD - povprecja.predmeti$N_anket - povprecja.predmeti$N_zavrnjenih
|
|
povprecja.predmeti$neodzivnih.pct <- povprecja.predmeti$N_neodzivnih / povprecja.predmeti$ST_STUD * 100
|
|
# Po izpitu
|
|
povprecja.predmeti$N_neodzivnih_po_izpitu <- povprecja.predmeti$ST_STUD - povprecja.predmeti$N_anket_po_izpitu - povprecja.predmeti$N_zavrnjenih_po_izpitu
|
|
povprecja.predmeti$neodzivnih.pct_po_izpitu <- povprecja.predmeti$N_neodzivnih_po_izpitu / povprecja.predmeti$ST_STUD * 100
|
|
## //average of components - all, before, after exam// ##
|
|
|
|
# preurejeno ime predmeta
|
|
povprecja.predmeti$ime.predmeta <- povprecja.predmeti$PREDMET
|
|
|
|
# IZREDNi ŠTUDIJ
|
|
izredni <- povprecja.predmeti$NACIN=="2" # če je izredni predmet mora biti to v oklepaju
|
|
izredni <- izredni[!is.na(izredni) ]
|
|
povprecja.predmeti$ime.predmeta[izredni] <- paste(povprecja.predmeti$ime.predmeta[izredni], "(izredna izvedba)")
|
|
# //IZREDNi ŠTUDIJ// #
|
|
|
|
# nova imena predmetov še k povprečjem izvajalcev[]
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, povprecja.predmeti[,c("predmet.sifra","ime.predmeta")], by = "predmet.sifra", sort = FALSE)
|
|
|
|
df_dups <- povprecja.izvajalci[c("izvajalec.sifra","predmet.sifra")]
|
|
|
|
povprecja.izvajalci <- povprecja.izvajalci[!duplicated(df_dups),]
|
|
|
|
|
|
########################
|
|
## ŠTUDIJSKI PROGRAMI ##
|
|
########################
|
|
# število ocen po programih (za poročila in povprečja po programih)
|
|
programi <- unique(data.predmeti[c("student.program.sifra", "student.program.ime")])
|
|
programi <- subset(programi, !is.na(student.program.sifra))
|
|
programi <- subset(programi, student.program.ime != "NA")
|
|
programi <- programi[order(programi$student.program.ime), ]
|
|
|
|
## izvajalec: Študijski program ##
|
|
povprecja.izvajalci[paste0("program_studenta_", programi$student.program.sifra)] <- 0
|
|
data.izv.temp <- subset(data.izvajalci, veljavna)
|
|
programi.studentov <- as.data.frame.matrix(table(paste(data.izv.temp$izvajalec.sifra, data.izv.temp$predmet.sifra, sep = "_"), data.izv.temp$student.program.sifra))
|
|
names(programi.studentov) <- paste0("program_studenta_", names(programi.studentov))
|
|
povprecja.izvajalci[match(rownames(programi.studentov), paste(povprecja.izvajalci$izvajalec.sifra, povprecja.izvajalci$predmet.sifra, sep = "_")), names(programi.studentov)] <- programi.studentov
|
|
|
|
## predmet: Študijski program ##
|
|
povprecja.predmeti[paste0("program_studenta_", programi$student.program.sifra)] <- 0
|
|
data.prog.temp <- subset(data.predmeti, veljavna)
|
|
programi.studentov <- as.data.frame.matrix(table(data.prog.temp$predmet.sifra, data.prog.temp$student.program.sifra))
|
|
names(programi.studentov) <- paste0("program_studenta_", names(programi.studentov))
|
|
povprecja.predmeti[match(rownames(programi.studentov), povprecja.predmeti$predmet.sifra), names(programi.studentov)] <- programi.studentov
|
|
|
|
# sort by name
|
|
povprecja.izvajalci <- povprecja.izvajalci[order(povprecja.izvajalci$NAZIV.PEDAGOGA, povprecja.izvajalci$PREDMET), ]
|
|
povprecja.predmeti <- povprecja.predmeti[order(povprecja.predmeti$PREDMET),]
|
|
|
|
# Uporabimo, ko delamo izpis za TRENDE ali za HABILITACIJSKO KOMISIJO
|
|
#write.csv2(povprecja.izvajalci, paste0("results/povprecja.izvajalci-minEnot_", fakulteta, ".csv")
|
|
#write.csv2(povprecja.predmeti, paste0("results/povprecja.predmeti-minEnot_", fakulteta, ".csv")
|
|
|
|
# are there any courses with too many answers in the database according to sifrant.xlsx
|
|
premalo_vpisanih <- povprecja.predmeti$N_neodzivnih < 0
|
|
premalo_vpisanih <- !is.na(premalo_vpisanih)
|
|
if (any(premalo_vpisanih)) {
|
|
warning(c("Some courses have more students in the database than number of students that are attending the course according to sifrant.xlsx",
|
|
paste("\n",povprecja.predmeti$predmet.sifra[premalo_vpisanih], povprecja.predmeti$PREDMET[premalo_vpisanih],paste0("(",abs(povprecja.predmeti$N_neodzivnih[premalo_vpisanih]), " more students)"))))
|
|
}
|
|
|
|
# skupna povprečja izvajalcev (povprečja ocen pri vseh predmetih)
|
|
povprecja.izvajalci.skupaj <- aggregate(povprecja.izvajalci[, c("ST_STUD","N_anket","N_anketSkupaj","sodelujocih.pct","zavrnjenih.pct","neodzivnih.pct","nipouceval.pct", paste0(vars.izvajalec$cont$vars,"_mean"),"izvajalec.ocena.SKUPAJ")],
|
|
by = povprecja.izvajalci[,"izvajalec.sifra", drop = FALSE],
|
|
FUN = mean, na.rm = TRUE)
|
|
|
|
# number of evaluations from different programmes
|
|
vsota.ocen.programov <- aggregate(povprecja.izvajalci[paste0("program_studenta_", programi$student.program.sifra)],
|
|
by = povprecja.izvajalci[, "izvajalec.sifra", drop = FALSE], FUN = sum, na.rm = TRUE)
|
|
povprecja.izvajalci.skupaj <- merge(povprecja.izvajalci.skupaj, vsota.ocen.programov, by = "izvajalec.sifra", all.x = TRUE)
|
|
|
|
# number of courses with at least minimun nuber of answers
|
|
st.ocen <- aggregate(list(st.ocen=povprecja.izvajalci$N_anket >= minEnot),
|
|
by = povprecja.izvajalci[, "izvajalec.sifra", drop = FALSE], FUN = sum, na.rm = TRUE)
|
|
povprecja.izvajalci.skupaj <- merge(povprecja.izvajalci.skupaj, st.ocen, by = "izvajalec.sifra", all.x = TRUE)
|
|
|
|
# še imena izvajalcev
|
|
povprecja.izvajalci.skupaj <- merge(povprecja.izvajalci.skupaj, unique(povprecja.izvajalci[,c("izvajalec.sifra","NAZIV.PEDAGOGA")]),
|
|
by = "izvajalec.sifra", all.x = TRUE)
|
|
|
|
# da izračunamo povprečja vseh predmetov določenega izvajalca rabimo ocene predmetov po izvajalcih (podvojene vrstice z različnimi šiframi izvajalcev)
|
|
povprecja.predmeti.vsi.izvajalci <- merge(povprecja.izvajalci[,c("izvajalec.sifra","predmet.sifra")], povprecja.predmeti,
|
|
by = "predmet.sifra", all.x = TRUE, sort = FALSE)
|
|
povprecja.predmetov.izvajalca.skupaj <- aggregate(povprecja.predmeti.vsi.izvajalci[, c("ST_STUD","N_anket","N_anket_po_izpitu",
|
|
"sodelujocih.pct","sodelujocih.pct_po_izpitu",
|
|
"zavrnjenih.pct","zavrnjenih.pct_po_izpitu",
|
|
"neodzivnih.pct","neodzivnih.pct_po_izpitu",
|
|
paste0(vars.predmet$cont$vars,"_mean"),
|
|
"predmet.ocena.SKUPAJ","predmet.ocena.SKUPAJ.pred",
|
|
"predmet.ocena.SKUPAJ.po","predmet.ocena.SKUPAJ.praksa",
|
|
"predmet.ocena.krediti_mean",
|
|
"predmet.ocena.kompetence1_mean")],
|
|
by = povprecja.predmeti.vsi.izvajalci[,"izvajalec.sifra", drop = FALSE],
|
|
FUN = mean, na.rm = TRUE)
|
|
# še imena izvajalcev
|
|
povprecja.predmetov.izvajalca.skupaj <- merge(povprecja.predmetov.izvajalca.skupaj,
|
|
unique(povprecja.izvajalci[,c("izvajalec.sifra","NAZIV.PEDAGOGA")]),
|
|
by = "izvajalec.sifra", all.x = TRUE)
|
|
|
|
# povprečja vseh izvajalecv pri vsakem predmetu
|
|
povprecja.predmet.izvajalci.skupaj <- aggregate(povprecja.izvajalci[, c("ST_STUD","N_anket","N_anketSkupaj","sodelujocih.pct","zavrnjenih.pct",
|
|
"neodzivnih.pct",paste0(vars.izvajalec$cont$vars,"_mean"),
|
|
"izvajalec.ocena.SKUPAJ")],
|
|
by = povprecja.izvajalci[,"predmet.sifra",drop = FALSE],
|
|
FUN = mean, na.rm = TRUE)
|
|
# še imena predmetov
|
|
povprecja.predmet.izvajalci.skupaj <- merge(povprecja.predmet.izvajalci.skupaj, povprecja.predmeti[,c("predmet.sifra","ime.predmeta")],
|
|
by = "predmet.sifra", all.x = TRUE)
|
|
|
|
# sort
|
|
povprecja.izvajalci.skupaj <- povprecja.izvajalci.skupaj[order(povprecja.izvajalci.skupaj$NAZIV.PEDAGOGA),]
|
|
povprecja.predmetov.izvajalca.skupaj <- povprecja.predmetov.izvajalca.skupaj[order(povprecja.predmetov.izvajalca.skupaj$NAZIV.PEDAGOGA),]
|
|
povprecja.predmet.izvajalci.skupaj <- povprecja.predmet.izvajalci.skupaj[order(povprecja.predmet.izvajalci.skupaj$ime.predmeta),]
|
|
|
|
#write.csv2(povprecja.izvajalci.skupaj, file='results/povprecja.izvajalci.skupaj-minEnot.csv')
|
|
#write.csv2(povprecja.predmetov.izvajalca.skupaj, file='results/povprecja.predmetov.izvajalca.skupaj-minEnot.csv')
|
|
#write.csv2(povprecja.predmet.izvajalci.skupaj, file='results/povprecja.predmet.izvajalci.skupaj-minEnot.csv')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#################
|
|
## Quantiles ##
|
|
#################
|
|
# for every lecturer/course
|
|
# S funkcijo kvantRang in kvantRang1 izračunamo in barvamo kvantilne range, ki se pokažejo v posameznih tabelah (glej skirpto funkcije.r)
|
|
# Kvantilni rangi za izvajalce pri predmetih (IPP)
|
|
kvantili.izvajalci <- povprecja.izvajalci[c("izvajalec.sifra","NAZIV.PEDAGOGA","predmet.sifra","ime.predmeta","ST_STUD","N_anket",
|
|
"sodelujocih.pct",paste0(vars.izvajalec$cont$vars,"_mean"),"izvajalec.ocena.SKUPAJ")]
|
|
for (var in c(paste0(vars.izvajalec$cont$vars,"_mean"),"izvajalec.ocena.SKUPAJ")) {
|
|
kvantili.izvajalci[[var]] <- kvantRang(kvantili.izvajalci[[var]])
|
|
|
|
}
|
|
|
|
for (var in c("ST_STUD","N_anket","sodelujocih.pct")) {
|
|
kvantili.izvajalci[[var]] <- kvantRang1(kvantili.izvajalci[[var]])
|
|
|
|
}
|
|
# //Kvantilni rangi za izvajalce pri predmetih (IPP)// #
|
|
|
|
|
|
# Kvantilni rangi za predmet: komponente ankete PRED in PO izpitu
|
|
kvantili.predmeti <- povprecja.predmeti[c("predmet.sifra","ime.predmeta","ST_STUD","N_anket","N_anket_po_izpitu","sodelujocih.pct",
|
|
"sodelujocih.pct_po_izpitu",paste0(vars.predmet$cont$vars,"_mean"),"predmet.ocena.SKUPAJ",
|
|
"predmet.ocena.SKUPAJ.pred","predmet.ocena.SKUPAJ.po","predmet.ocena.SKUPAJ.praksa",
|
|
"predmet.ocena.krediti_mean","predmet.ocena.kompetence1_mean")]
|
|
for (var in c(paste0(vars.predmet$cont$vars,"_mean"),"predmet.ocena.SKUPAJ","predmet.ocena.SKUPAJ.pred","predmet.ocena.SKUPAJ.po",
|
|
"predmet.ocena.SKUPAJ.praksa")) {
|
|
kvantili.predmeti[[var]] <- kvantRang(kvantili.predmeti[[var]])
|
|
}
|
|
|
|
for (var in c("ST_STUD","N_anket","N_anket_po_izpitu","sodelujocih.pct","sodelujocih.pct_po_izpitu")) {
|
|
kvantili.predmeti[[var]] <- kvantRang1(kvantili.predmeti[[var]])
|
|
|
|
}
|
|
|
|
for (var in c("predmet.ocena.krediti_mean","predmet.ocena.kompetence1_mean")) {
|
|
kvantili.predmeti[[var]] <- kvantRang2(kvantili.predmeti[[var]])
|
|
|
|
}
|
|
# //Kvantilni rangi za predmet: komponente ankete PRED in PO izpitu// #
|
|
|
|
## lecturer averages ##
|
|
kvantili.izvajalci.skupaj <- povprecja.izvajalci.skupaj[c("izvajalec.sifra","NAZIV.PEDAGOGA","ST_STUD","N_anket",
|
|
"sodelujocih.pct",paste0(vars.izvajalec$cont$vars,"_mean"),
|
|
"izvajalec.ocena.SKUPAJ")]
|
|
for (var in c(paste0(vars.izvajalec$cont$vars,"_mean"),"izvajalec.ocena.SKUPAJ")) {
|
|
kvantili.izvajalci.skupaj[[var]] <- kvantRang(kvantili.izvajalci.skupaj[[var]])
|
|
}
|
|
|
|
for (var in c("ST_STUD","N_anket","sodelujocih.pct")) {
|
|
kvantili.izvajalci.skupaj[[var]] <- kvantRang1(kvantili.izvajalci.skupaj[[var]])
|
|
|
|
}
|
|
|
|
kvantili.predmetov.izvajalca.skupaj <- povprecja.predmetov.izvajalca.skupaj[c("izvajalec.sifra","NAZIV.PEDAGOGA","ST_STUD",
|
|
"N_anket","N_anket_po_izpitu","sodelujocih.pct",
|
|
"sodelujocih.pct_po_izpitu",paste0(vars.predmet$cont$vars,"_mean"),
|
|
"predmet.ocena.SKUPAJ","predmet.ocena.SKUPAJ.pred",
|
|
"predmet.ocena.SKUPAJ.po","predmet.ocena.SKUPAJ.praksa",
|
|
"predmet.ocena.krediti_mean","predmet.ocena.kompetence1_mean")]
|
|
for (var in c(paste0(vars.predmet$cont$vars,"_mean"),"predmet.ocena.SKUPAJ","predmet.ocena.SKUPAJ.pred",
|
|
"predmet.ocena.SKUPAJ.po","predmet.ocena.SKUPAJ.praksa","predmet.ocena.krediti_mean",
|
|
"predmet.ocena.kompetence1_mean")) {
|
|
kvantili.predmetov.izvajalca.skupaj[[var]] <- kvantRang(kvantili.predmetov.izvajalca.skupaj[[var]])
|
|
}
|
|
|
|
for (var in c("ST_STUD","N_anket","N_anket_po_izpitu","sodelujocih.pct","sodelujocih.pct_po_izpitu")) {
|
|
kvantili.predmetov.izvajalca.skupaj[[var]] <- kvantRang1(kvantili.predmetov.izvajalca.skupaj[[var]])
|
|
|
|
}
|
|
|
|
## for table names (izpis izvajalca, programov, fakultete) ##
|
|
kvantili.izvajalci.st <- sum(kvantili.izvajalci$izvajalec.ocena.SKUPAJ != ".") # Število vseh ocenjenih izvajalcev fakultete
|
|
|
|
# Glej npr izpis izvajalca, Tabela 1.1 (vrstico Povprečje FDV),
|
|
# kjer se izpiše število predmetov v anketi PRED izpitom
|
|
kvantili.predmeti.st.pred <- sum(kvantili.predmeti$predmet.ocena.SKUPAJ.pred != ".") # Število vseh ocenjenih predmetov: anketa PRED
|
|
kvantili.predmeti.st.po <- sum(kvantili.predmeti$predmet.ocena.SKUPAJ.po != ".") # Število vseh ocenjenih predmetov: anketa PO
|
|
|
|
kvantili.izvajalci.skupaj.st <- sum(kvantili.izvajalci.skupaj$izvajalec.ocena.SKUPAJ != ".") # Število vseh ocenjenih IPP (izvajalcev pri)
|
|
kvantili.predmetov.izvajalca.skupaj.st.pred <- sum(kvantili.predmetov.izvajalca.skupaj$predmet.ocena.SKUPAJ.pred != ".")
|
|
kvantili.predmetov.izvajalca.skupaj.st.po <- sum(kvantili.predmetov.izvajalca.skupaj$predmet.ocena.SKUPAJ.po != ".")
|
|
|
|
kvantili.ustreznotsKT <- sum(kvantili.predmeti$predmet.ocena.krediti_mean != ".") # Število vseh ocen za ustreznost KT (anketa PO)
|
|
kvantili.zadovoljstvo <- sum(kvantili.predmeti$predmet.ocena.zadovoljstvo_mean != ".") # Število vseh ocen za ustreznost KT (anketa PO)
|
|
## //Quantiles// ##
|
|
|
|
|
|
########################
|
|
## FACULTY AVERAGES ##
|
|
########################
|
|
# Povprečje izvajalcev
|
|
vars.izvajalec$cont$meansFDV[c(vars.izvajalec$cont$vars,"povprecje.ocen")] <- colMeans(povprecja.izvajalci[c(paste0(vars.izvajalec$cont$vars, "_mean"),"izvajalec.ocena.SKUPAJ")], na.rm = TRUE)
|
|
|
|
# Povprečje predmetov (anketa PRED izpitom, anketa PO izpitu, študijska praksa)
|
|
vars.predmet$cont$meansFDV[c(vars.predmet$cont$vars,"povprecje.ocen","povprecje.ocen.pred","povprecje.ocen.po","povprecje.ocen.praksa")] <- colMeans(povprecja.predmeti[c(paste0(vars.predmet$cont$vars, "_mean"),"predmet.ocena.SKUPAJ",
|
|
"predmet.ocena.SKUPAJ.pred","predmet.ocena.SKUPAJ.po","predmet.ocena.SKUPAJ.praksa")], na.rm=TRUE)
|
|
# Povprečje študijskih praks
|
|
vars.predmet$cont$FDVpraksa[c(vars.predmet$cont$praksa,"povprecje.ocen.praksa")] <- colMeans(povprecja.predmeti[c(paste0(vars.predmet$cont$praksa, "_mean"),"predmet.ocena.SKUPAJ.praksa")], na.rm = TRUE)
|
|
|
|
# Povprečje Ustreznost KT
|
|
vars.predmet$krediti$meansFDV[c("predmet.ocena.krediti")] <- colMeans(povprecja.predmeti["predmet.ocena.krediti_mean"], na.rm = TRUE)
|
|
|
|
# Standardni odklon za ustreznost KT
|
|
vars.predmet$krediti$meansFDV1[c("predmet.ocena.krediti.sd")] <- colMeans(povprecja.predmeti["predmet.ocena.krediti_sd"], na.rm = TRUE)
|
|
vars.predmet$krediti$pctsFDV[paste0("krediti_razporejanje_pct_", 1:5)] <- colMeans(povprecja.predmeti[paste0("krediti_razporejanje_pct_", 1:5)], na.rm = TRUE)
|
|
|
|
# Povprečje kompetence
|
|
vars.predmet$kompetence1$meansFDV[c("predmet.ocena.kompetence1")] <- colMeans(povprecja.predmeti["predmet.ocena.kompetence1_mean"], na.rm = TRUE)
|
|
|
|
# Standardni odklon za kompetence
|
|
vars.predmet$kompetence1$meansFDV1[c("predmet.ocena.kompetence1.sd")] <- colMeans(povprecja.predmeti["predmet.ocena.kompetence1_sd"], na.rm = TRUE)
|
|
vars.predmet$kompetence1$pctsFDV[paste0("kompetence1_razporejanje_pct_", 1:5)] <- colMeans(povprecja.predmeti[paste0("kompetence1_razporejanje_pct_", 1:5)], na.rm = TRUE)
|
|
|
|
# response
|
|
povprecja.izvajalci[,41] <- as.numeric(povprecja.izvajalci[,41])
|
|
|
|
#######################################################
|
|
# Skupna Povprečja IZVAJLCEV fakultete glede na STOPNJO
|
|
#######################################################
|
|
FDVizvajalci <- rbind(skupaj = colMeans(povprecja.izvajalci[c("ST_STUD","N_anket","N_anketSkupaj","sodelujocih.pct","zavrnjenih.pct","neodzivnih.pct","nipouceval.pct")], na.rm = T),
|
|
"1" = colMeans(povprecja.izvajalci[povprecja.izvajalci$STOPNJA == 1, c("ST_STUD","N_anket","N_anketSkupaj","sodelujocih.pct","zavrnjenih.pct","neodzivnih.pct","nipouceval.pct")], na.rm = T),
|
|
"2"=colMeans(povprecja.izvajalci[povprecja.izvajalci$STOPNJA == 2, c("ST_STUD","N_anket","N_anketSkupaj","sodelujocih.pct","zavrnjenih.pct","neodzivnih.pct","nipouceval.pct")], na.rm = T))
|
|
|
|
######################################################################################
|
|
# Skupna Povprečja PREDMETOV fakultete glede na STOPNJO in glede na SEMESTER IZVAJANJA
|
|
######################################################################################
|
|
FDVpredmeti <- rbind(skupaj=colMeans(povprecja.predmeti[c("ST_STUD","N_anket","N_anket_po_izpitu",
|
|
"sodelujocih.pct","sodelujocih.pct_po_izpitu",
|
|
"zavrnjenih.pct","zavrnjenih.pct_po_izpitu",
|
|
"neodzivnih.pct","neodzivnih.pct_po_izpitu")], na.rm = T),
|
|
"1"=colMeans(povprecja.predmeti[povprecja.predmeti$STOPNJA == 1,
|
|
c("ST_STUD","N_anket","N_anket_po_izpitu","sodelujocih.pct",
|
|
"sodelujocih.pct_po_izpitu","zavrnjenih.pct","zavrnjenih.pct_po_izpitu",
|
|
"neodzivnih.pct","neodzivnih.pct_po_izpitu")], na.rm = T),
|
|
"2"=colMeans(povprecja.predmeti[povprecja.predmeti$STOPNJA == 2,
|
|
c("ST_STUD","N_anket","N_anket_po_izpitu",
|
|
"sodelujocih.pct","sodelujocih.pct_po_izpitu",
|
|
"zavrnjenih.pct","zavrnjenih.pct_po_izpitu",
|
|
"neodzivnih.pct","neodzivnih.pct_po_izpitu")], na.rm = T),
|
|
"prvi_semester" = colMeans(subset(povprecja.predmeti, SEMESTER_IZV %in% prvi_semester)
|
|
[c("ST_STUD","N_anket","N_anket_po_izpitu","sodelujocih.pct",
|
|
"sodelujocih.pct_po_izpitu","zavrnjenih.pct","zavrnjenih.pct_po_izpitu",
|
|
"neodzivnih.pct","neodzivnih.pct_po_izpitu")], na.rm = T),
|
|
"drugi_semester" = colMeans(subset(povprecja.predmeti, SEMESTER_IZV %in% drugi_semester)
|
|
[c("ST_STUD","N_anket","N_anket_po_izpitu","sodelujocih.pct",
|
|
"sodelujocih.pct_po_izpitu","zavrnjenih.pct","zavrnjenih.pct_po_izpitu",
|
|
"neodzivnih.pct","neodzivnih.pct_po_izpitu")], na.rm = T))
|
|
## //FACULTY AVERAGES// ##
|
|
|
|
|
|
#####################################
|
|
# POVPREČJA PO ŠTUDIJSKIH PROGRAMIH
|
|
#####################################
|
|
# Skupne ocene predmetov po posameznih študijskih programih
|
|
progMeanPredm <- aggregate(data.predmeti[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.predmeti["student.program.sifra"], FUN = mean, na.rm = TRUE)
|
|
progMeanPredm$predmet.ocena.SKUPAJ <- rowMeans(progMeanPredm[vars.predmet$cont$vars], na.rm = TRUE)
|
|
progMeanPredm$predmet.ocena.SKUPAJ.pred <- rowMeans(progMeanPredm[vars.predmet$cont$pred], na.rm = TRUE)
|
|
progMeanPredm$predmet.ocena.SKUPAJ.po <- rowMeans(progMeanPredm[vars.predmet$cont$po[-1]], na.rm = TRUE)
|
|
progMeanPredm$predmet.ocena.SKUPAJ.praksa <- rowMeans(progMeanPredm[vars.predmet$cont$praksa], na.rm = TRUE)
|
|
|
|
# Skupna povprečja izvajalcav po posameznih študijskih programih
|
|
progMeanIzv <- aggregate(data.izvajalci[vars.izvajalec$cont$vars],
|
|
by=data.izvajalci["student.program.sifra"], FUN = mean, na.rm = TRUE)
|
|
progMeanIzv <- cbind(progMeanIzv, izvajalec.ocena.SKUPAJ=rowMeans(progMeanIzv[vars.izvajalec$cont$vars]))
|
|
|
|
#izračun povprečij izvajalcev za študijske programe in insert v poročila za fakulteto
|
|
progMeanIzv.fak <- aggregate(data.izvajalci[vars.izvajalec$cont$vars], by = data.izvajalci[c("student.program.sifra","student.program.ime")],
|
|
FUN = mean,na.rm = TRUE)
|
|
progMeanIzv.fak1 <- cbind(progMeanIzv.fak, izvajalec.ocena.SKUPAJ = rowMeans(progMeanIzv.fak[vars.izvajalec$cont$vars], na.rm = TRUE))
|
|
# Število odogovorov (število anket) pri posameznem študijskem programu
|
|
st.odgovorov.fak1 <- aggregate(data.izvajalci$veljavna, by = data.izvajalci[c("student.program.sifra","student.program.ime")], FUN = sum)
|
|
colnames(st.odgovorov.fak1)[3] <- "N_anket" # Poimenujemo stolpec
|
|
|
|
progMeanIzv.fak1 <- merge(progMeanIzv.fak1, st.odgovorov.fak1, by = c("student.program.sifra","student.program.ime"),
|
|
all = TRUE, sort = FALSE)
|
|
## //povprečja programov// ##
|
|
|
|
|
|
## PODATKI ZA TABELE, KI SE DODAJO K "ANALIZI IZVAJALCA PRI PREDMETU PO PROGRAMIH IN LETNIKIH" ##
|
|
test1 <- aggregate(data.izvajalci[vars.izvajalec$cont$vars],
|
|
by = data.izvajalci[c("student.program.ime")], FUN = mean, na.rm = TRUE)
|
|
test2 <- cbind(test1, izvajalec.ocena.SKUPAJ=rowMeans(test1[vars.izvajalec$cont$vars], na.rm = TRUE))
|
|
|
|
|
|
#Zaokroži vrednosti za izpis programov pri IZVAJALCU
|
|
round_df <- function(x, digits) {
|
|
# round all numeric variables
|
|
# x: data frame
|
|
# digits: number of digits to round
|
|
numeric_columns <- sapply(x, class) == 'numeric'
|
|
x[numeric_columns] <- round(x[numeric_columns], digits)
|
|
x
|
|
}
|
|
test2 <- round_df(test2, 1)
|
|
## //PODATKI ZA TABELE// ##
|
|
|
|
|
|
## PODATKI ZA TABELE, KI SE DODAJO K "Analiza predmeta po programih in letnikih" ##
|
|
vars.predmet$cont$vars1 <- vars.predmet$cont$vars[-c(12,13,14,15,16,17,18,19,20)]
|
|
vars.predmet.vars <- vars.predmet$cont$vars1[-c(8,9,10,11)]
|
|
test.pred <- aggregate(data.predmeti[vars.predmet.vars],
|
|
by = data.predmeti[c("student.program.ime")], FUN = mean, na.rm = TRUE)
|
|
test.pred <- cbind(test.pred, predmet.ocena.SKUPAJ = rowMeans(test.pred[vars.predmet.vars], na.rm = TRUE))
|
|
|
|
#Zaokroži vrednosti za izpis programov pri PREDMETU
|
|
test.pred <- round_df(test.pred, 1)
|
|
## // PODATKI ZA TABELE// ##
|
|
|
|
|
|
# ZARADI UMETNO GENERIRANIH ŠIFER IZVAJALCEV SE ZA ANKETO PO ZA ŠTUDIJSKE PROGRAME NISO PRAVILNO IZPISALA POVPREČJA IN ŠTEVILO ODGOVOROV
|
|
# Zato smo komponente za anketo PO izpitu analizirali iz prvotne baze (anketa po izpitu) namesto iz baze "data.predmeti"
|
|
# Tako smo bazo data_po_izpitu uporabili le v primerih, ko se povprečja navezujejo na študijske programe za anketo PO IZPITU
|
|
data.predmet.po <- data_po_izpitu
|
|
|
|
# Opredelimo imena spremenljivk oz komponent v ankeit PO izpitu
|
|
lokacije.predmet.po <- lokacije.predmet[c(1:1,3:3,13:nrow(lokacije.predmet)), 1, drop = FALSE]
|
|
|
|
|
|
## PODATKI ZA PREDMETE PO IZPITU ##
|
|
# Ponovimo, kar smo naredili že na začetku a tokrat le na podatkih PO izpitu.
|
|
data.predmeti.PO <- data.predmet.po[c(lokacije.predmet.po[, 1], "idprog","letnik","program", "lurker")] # Združimo spremenljivke v lokacije.predmet[, 1] in šifro študentov
|
|
names(data.predmeti.PO) <- c(rownames(lokacije.predmet.po), "ID_vrsta_studija","Letnik","Naziv","lurker")
|
|
someMissVars.PO <- rownames(navP[!is.na(navP$missings.table), ])
|
|
someMissVars.PO <- someMissVars.PO[8:20] # 8:20 so spremenljivke (komponente), ki se nanašajo na anketo po izpitu
|
|
data.predmeti.PO.someMiss <- data.predmeti.PO[c("predmet.sifra", someMissVars.PO)]
|
|
# setting missing values and keeping some (defined in navodila.xlsx in column missing.table) for frequency tables
|
|
for (var in c(vars.predmet$cont$vars[8:20],
|
|
vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)) {
|
|
miss <- unlist(strsplit(navodila[var,]$missings, ","))
|
|
data.predmeti.PO[, var][data.predmeti.PO[, var] %in% miss] <- NA
|
|
if (var %in% c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)) {
|
|
data.predmeti.PO[, var] <- as.numeric(data.predmeti.PO[, var])
|
|
}
|
|
if (var %in% someMissVars.PO) {
|
|
someMissVals <-
|
|
matrix(unlist(strsplit(unlist(strsplit(navodila[var,]$missings.table, ",")), "=")), ncol = 2, byrow = TRUE)
|
|
miss <- miss[!(miss %in% someMissVals[, 1])]
|
|
data.predmeti.PO.someMiss[, var][data.predmeti.PO.someMiss[, var] %in% miss] <- NA
|
|
for (missVar in 1:nrow(someMissVals)) {
|
|
data.predmeti.PO.someMiss[, var][data.predmeti.PO.someMiss[, var] == someMissVals[missVar, 1] &
|
|
!is.na(data.predmeti.PO.someMiss[, var])] <- someMissVals[missVar, 2]
|
|
}
|
|
}
|
|
}
|
|
# all values with some miss for tables
|
|
predmet.someMiss.PO <- sort(unique(as.vector(as.matrix(data.predmeti.PO.someMiss[, vars.predmet$cont$vars[8:20]]))))
|
|
if(any(predmet.someMiss.PO=="")) {
|
|
predmet.someMiss.PO <- predmet.someMiss.PO[predmet.someMiss.PO != ""]
|
|
|
|
}
|
|
|
|
data.predmeti.PO <- data.predmeti.PO[order(data.predmeti.PO$predmet.sifra),]
|
|
# ali je anketa veljavna za predmet; ali je student ni izpolnjeval (je pa začel anketo)
|
|
data.predmeti.PO$veljavna_po_izpitu <- data.predmeti.PO$predmet.izpolnjeval.po == -1 & !is.na(data.predmeti.PO$predmet.izpolnjeval.po)
|
|
data.predmeti.PO$zavrnjena_po_izpitu <- (!data.predmeti.PO$veljavna_po_izpitu & !is.na(data.predmeti.PO$predmet.izpolnjeval.po))
|
|
# adding student data (year and programme)
|
|
data.predmeti.PO <- merge(data.predmeti.PO, programi.imena[,c("ID", "Naziv")], by.x="ID_vrsta_studija", by.y="ID", all.x=TRUE, sort=FALSE)
|
|
names(data.predmeti.PO)[match(c("ID_vrsta_studija","Letnik","Naziv.y"), names(data.predmeti.PO))] <- c("student.program.sifra","student.letnik","student.program.ime")
|
|
|
|
##############
|
|
## PREDMETI ##
|
|
##############
|
|
# Izreačunamo povprečja predmetov še za anketo PO izpitu
|
|
# povprečja
|
|
predMean <- aggregate(data.predmeti.PO[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.predmeti.PO["predmet.sifra"], FUN = mean, na.rm = TRUE)
|
|
colnames(predMean)[2:ncol(predMean)] <- paste0(c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_mean")
|
|
|
|
# Mediane
|
|
predMedian <- aggregate(data.predmeti.PO[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.predmeti.PO["predmet.sifra"], FUN = median, na.rm = TRUE)
|
|
colnames(predMedian)[2:ncol(predMedian)] <- paste0(c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_median")
|
|
|
|
# sd
|
|
predSd <- aggregate(data.predmeti.PO[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.predmeti.PO["predmet.sifra"], FUN = sd, na.rm = TRUE)
|
|
colnames(predSd)[2:ncol(predSd)] <- paste0(c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_sd")
|
|
|
|
# min
|
|
predMin <- aggregate(data.predmeti.PO[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars)], by = data.predmeti.PO["predmet.sifra"], FUN = min, na.rm = TRUE)
|
|
colnames(predMin)[2:ncol(predMin)] <- paste0(c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars),"_min")
|
|
predMin[predMin==Inf] <- NA
|
|
|
|
# max
|
|
predMax <- aggregate(data.predmeti.PO[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars)],
|
|
by = data.predmeti.PO["predmet.sifra"], FUN = max, na.rm = TRUE)
|
|
colnames(predMax)[2:ncol(predMax)] <- paste0(c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars),"_max")
|
|
predMax[predMax==-Inf] <- NA
|
|
|
|
# N posamezne spremenljivke
|
|
predN <- aggregate(data.predmeti.PO[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.predmeti.PO["predmet.sifra"], FUN=function(x) sum(!is.na(x)))
|
|
colnames(predN)[2:ncol(predN)] <- paste0(c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_N")
|
|
|
|
# N answering before and after exam
|
|
predNanket <- aggregate(data.predmeti.PO$veljavna, by = data.predmeti.PO["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket)[2] <- "N_anket"
|
|
predNanket_po_izpitu <- aggregate(data.predmeti.PO$veljavna_po_izpitu, by = data.predmeti.PO["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket_po_izpitu)[2] <- "N_anket_po_izpitu"
|
|
|
|
# N didn't want to answer before and after exam
|
|
predNzavrnjenih <- aggregate(data.predmeti.PO$zavrnjena, by = data.predmeti.PO["predmet.sifra"], FUN = sum)
|
|
colnames(predNzavrnjenih)[2] <- "N_zavrnjenih"
|
|
predNzavrnjenih_po_izpitu <- aggregate(data.predmeti.PO$zavrnjena_po_izpitu, by = data.predmeti.PO["predmet.sifra"], FUN = sum)
|
|
colnames(predNzavrnjenih_po_izpitu)[2] <- "N_zavrnjenih_po_izpitu"
|
|
|
|
|
|
# N Lurkerjev PRED izpitom
|
|
data.predmeti.PO$lurker[data.predmeti.PO$lurker==0] <- NA
|
|
poNLurkerji <- aggregate(as.numeric(data.predmeti.PO$lurker), by = data.predmeti.PO["predmet.sifra"],FUN=function(x) sum(!is.na(x)))
|
|
colnames(poNLurkerji)[2] <- "N_lurkerjev_po"
|
|
|
|
|
|
programi.PO <- unique(data.predmeti.PO[c("student.program.sifra", "student.program.ime")])
|
|
programi.PO <- subset(programi.PO, !is.na(student.program.sifra))
|
|
programi.PO <- subset(programi.PO, student.program.ime != "NA")
|
|
programi.PO <- programi.PO[order(programi.PO$student.program.ime), ]
|
|
|
|
## ŠTUDIJSKI PROGRAMI (ANKETA PO IZPTTU) ##
|
|
# Še za aneto PO izpitu izračunamo povprečja študijskih programov
|
|
# Skupne ocene predmetov po posameznih študijskih programih
|
|
progMeanPredm.PO <- aggregate(data.predmeti.PO[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.predmeti.PO["student.program.sifra"], FUN = mean, na.rm = TRUE)
|
|
progMeanPredm.PO$predmet.ocena.SKUPAJ.po <- rowMeans(progMeanPredm.PO[vars.predmet$cont$po[-1]], na.rm = TRUE)
|
|
progMeanPredm.PO$predmet.ocena.SKUPAJ.praksa <- rowMeans(progMeanPredm.PO[vars.predmet$cont$praksa], na.rm = TRUE)
|
|
|
|
|
|
## course averages by programme: ANKETA PO IZPITU ##
|
|
povprecja.predmeti.programi.PO <- NULL
|
|
povprecja.predmeti.programi.PO.brez.cenzure.PO <- NULL # Zapišemo vsa povprečja oz. vse ocene, tudi tista, ki imajo 4 odgovore ali manj
|
|
## course averages by programme ##
|
|
for (program in programi.PO$student.program.sifra) {
|
|
# povprečja
|
|
data.program <- subset(data.predmeti.PO, student.program.sifra == program)
|
|
predMean <- aggregate(data.program[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.program["predmet.sifra"], FUN = mean, na.rm = TRUE)
|
|
colnames(predMean)[2:ncol(predMean)] <- paste0(c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_mean")
|
|
# N posamezne spremenljivke
|
|
predN <- aggregate(data.program[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.program["predmet.sifra"], FUN = function(x) sum(!is.na(x)))
|
|
colnames(predN)[2:ncol(predN)] <- paste0(c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_N")
|
|
# N answering before and after exam
|
|
predNanket <- aggregate(data.program$veljavna, by = data.program["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket)[2] <- "N_anket"
|
|
predNanket_po_izpitu <- aggregate(data.program$veljavna_po_izpitu, by = data.program["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket_po_izpitu)[2] <- "N_anket_po_izpitu"
|
|
|
|
predmeti.program <- merge(predMean, predN, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
predmeti.program <- merge(predmeti.program, predNanket, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
predmeti.program <- merge(predmeti.program, predNanket_po_izpitu, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
|
|
povprecja.predmeti.programi.PO.brez.cenzure.PO <- rbind(povprecja.predmeti.programi.PO.brez.cenzure.PO,cbind(predmeti.program,
|
|
program.studentov = program,
|
|
program.studentov.ime = programi.PO[programi.PO$student.program.sifra == program,
|
|
"student.program.ime"]))
|
|
|
|
# zakrivanje vrednosti kjer ni dovolj enot
|
|
premalo <- predmeti.program[c(paste0(vars.predmet$cont$vars[8:20],"_N"),"predmet.ocena.krediti_N","predmet.ocena.kompetence1_N")] < minEnot
|
|
predmeti.program[c(paste0(vars.predmet$cont$vars[8:20],"_mean"),"predmet.ocena.krediti_mean","predmet.ocena.kompetence1_mean")][premalo] <- NA
|
|
|
|
|
|
# average of components - all, before, after exam
|
|
|
|
predmeti.program$predmet.ocena.SKUPAJ.po <- rowMeans(predmeti.program[paste0(vars.predmet$cont$po[-1],"_mean")],na.rm=T)
|
|
predmeti.program$predmet.ocena.SKUPAJ.praksa <- rowMeans(predmeti.program[paste0(vars.predmet$cont$praksa,"_mean")],na.rm=T)
|
|
|
|
povprecja.predmeti.programi.PO <- rbind(povprecja.predmeti.programi.PO, cbind(predmeti.program, program.studentov = program,
|
|
program.studentov.ime = programi.PO[programi.PO$student.program.sifra==program,
|
|
"student.program.ime"]))
|
|
}
|
|
povprecja.predmeti.programi.PO <- merge(povprecja.predmeti.programi.PO, povprecja.predmeti[, c("predmet.sifra", "ime.predmeta", "NACIN_STUDIJA")],
|
|
by = "predmet.sifra", all.x = T)
|
|
povprecja.predmeti.programi.PO.brez.cenzure.PO <- merge(povprecja.predmeti.programi.PO.brez.cenzure.PO,
|
|
povprecja.predmeti[, c("predmet.sifra", "ime.predmeta", "NACIN_STUDIJA")],
|
|
by = "predmet.sifra", all.x = T)
|
|
## //course averages by programme// ##
|
|
|
|
|
|
## course averages by programme ##
|
|
povprecja.predmeti.programi <- NULL
|
|
povprecja.predmeti.programi.brez.cenzure <- NULL # Zapišemo vsa povprečja oz. vse ocene, tudi tista, ki imajo 4 odgovore ali manj
|
|
## course averages by programme ##
|
|
for (program in programi$student.program.sifra) {
|
|
# povprečja
|
|
data.program <- subset(data.predmeti, student.program.sifra == program)
|
|
|
|
predMean <- aggregate(data.program[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.program["predmet.sifra"], FUN = mean, na.rm = TRUE)
|
|
# predMean.po <- aggregate(data.program.po[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.program.po["predmet.sifra"], FUN = mean, na.rm = TRUE)
|
|
# predMean <- merge(predMean,predMean.po[c("predmet.sifra","predmet.ocena.kompetence","predmet.ocena.vsebine",
|
|
# "predmet.ocena.naloge","predmet.ocena.kriteriji",
|
|
# "predmet.ocena.krediti","predmet.ocena.kompetence1")], by="predmet.sifra", all=T, sort=F)
|
|
#predMean <- predMean[, -grep(".x", colnames(predMean))]
|
|
#colnames(predMean) <- gsub("\\.y", "", colnames(predMean))
|
|
#predMean <- predMean[c(1:8,18:21,9:17,22:23)]
|
|
colnames(predMean)[2:ncol(predMean)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_mean")
|
|
# N posamezne spremenljivke
|
|
predN <- aggregate(data.program[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.program["predmet.sifra"], FUN = function(x) sum(!is.na(x)))
|
|
# predNpo <- aggregate(data.program.po[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.program.po["predmet.sifra"], FUN = function(x) sum(!is.na(x)))
|
|
#predN <- merge(predN,predNpo[c("predmet.sifra","predmet.ocena.kompetence","predmet.ocena.vsebine",
|
|
# "predmet.ocena.naloge","predmet.ocena.kriteriji",
|
|
# "predmet.ocena.krediti","predmet.ocena.kompetence1")], by="predmet.sifra", all=T, sort=F)
|
|
#predN <- predN[, -grep(".x", colnames(predN))]
|
|
#colnames(predN) <- gsub("\\.y", "", colnames(predN))
|
|
#predN <- predN[c(1:8,18:21,9:17,22:23)]
|
|
colnames(predN)[2:ncol(predN)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_N")
|
|
# N answering before and after exam
|
|
predNanket <- aggregate(data.program$veljavna, by = data.program["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket)[2] <- "N_anket"
|
|
predNanket_po_izpitu <- aggregate(data.program$veljavna_po_izpitu, by = data.program["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket_po_izpitu)[2] <- "N_anket_po_izpitu"
|
|
predmeti.program <- merge(predMean, predN, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
predmeti.program <- merge(predmeti.program, predNanket, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
predmeti.program <- merge(predmeti.program, predNanket_po_izpitu, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
|
|
povprecja.predmeti.programi.brez.cenzure <- rbind(povprecja.predmeti.programi.brez.cenzure,cbind(predmeti.program,
|
|
program.studentov = program,
|
|
program.studentov.ime = programi.PO[programi.PO$student.program.sifra == program,
|
|
"student.program.ime"]))
|
|
|
|
# zakrivanje vrednosti kjer ni dovolj enot
|
|
premalo <- predmeti.program[c(paste0(vars.predmet$cont$vars,"_N"),"predmet.ocena.krediti_N","predmet.ocena.kompetence1_N")] < minEnot
|
|
predmeti.program[c(paste0(vars.predmet$cont$vars,"_mean"),"predmet.ocena.krediti_mean","predmet.ocena.kompetence1_mean")][premalo] <- NA
|
|
|
|
|
|
# average of components - all, before, after exam
|
|
predmeti.program$predmet.ocena.SKUPAJ <- rowMeans(predmeti.program[paste0(vars.predmet$cont$vars,"_mean")],na.rm=T)
|
|
predmeti.program$predmet.ocena.SKUPAJ.pred <- rowMeans(predmeti.program[paste0(vars.predmet$cont$pred,"_mean")],na.rm=T)
|
|
predmeti.program$predmet.ocena.SKUPAJ.po <- rowMeans(predmeti.program[paste0(vars.predmet$cont$po[-1],"_mean")],na.rm=T)
|
|
predmeti.program$predmet.ocena.SKUPAJ.praksa <- rowMeans(predmeti.program[paste0(vars.predmet$cont$praksa,"_mean")],na.rm=T)
|
|
|
|
povprecja.predmeti.programi <- rbind(povprecja.predmeti.programi, cbind(predmeti.program, program.studentov = program,
|
|
program.studentov.ime = programi.PO[programi.PO$student.program.sifra==program,
|
|
"student.program.ime"]))
|
|
}
|
|
povprecja.predmeti.programi <- merge(povprecja.predmeti.programi, povprecja.predmeti[, c("predmet.sifra", "ime.predmeta", "NACIN_STUDIJA")],
|
|
by = "predmet.sifra", all.x = T)
|
|
povprecja.predmeti.programi.brez.cenzure <- merge(povprecja.predmeti.programi.brez.cenzure,
|
|
povprecja.predmeti[, c("predmet.sifra", "ime.predmeta", "NACIN_STUDIJA")],
|
|
by = "predmet.sifra", all.x = T)
|
|
## //course averages by programme// ##
|
|
|
|
|
|
|
|
|
|
## course averages by student's year ANKETA PO IZPITU ##
|
|
povprecja.predmeti.letniki.PO <- NULL
|
|
povprecja.predmeti.letniki.PO.brez.cenzure.PO <- NULL # Vsa povprečja oz. vse ocene, tudi tiste, ki imajo 4 odgovore ali manj
|
|
## course averages by students' year ##
|
|
for (letnik in unique(sort(data.predmeti.PO$student.letnik))) {
|
|
# povprečja
|
|
data.letnik <- subset(data.predmeti.PO, student.letnik == letnik)
|
|
predMean <- aggregate(data.letnik[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.letnik["predmet.sifra"],
|
|
FUN=mean, na.rm=TRUE)
|
|
colnames(predMean)[2:ncol(predMean)] <- paste0(c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_mean")
|
|
# N posamezne spremenljivke
|
|
predN <- aggregate(data.letnik[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by=data.letnik["predmet.sifra"], FUN=function(x) sum(!is.na(x)))
|
|
colnames(predN)[2:ncol(predN)] <- paste0(c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_N")
|
|
# N answering before and after exam
|
|
predNanket <- aggregate(data.letnik$veljavna, by = data.letnik["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket)[2] <- "N_anket"
|
|
predNanket_po_izpitu <- aggregate(data.letnik$veljavna_po_izpitu, by=data.letnik["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket_po_izpitu)[2] <- "N_anket_po_izpitu"
|
|
|
|
predmeti.letnik <- merge(predMean, predN, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
predmeti.letnik <- merge(predmeti.letnik, predNanket, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
predmeti.letnik <- merge(predmeti.letnik, predNanket_po_izpitu, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
|
|
povprecja.predmeti.letniki.PO.brez.cenzure.PO <- rbind(povprecja.predmeti.letniki.PO.brez.cenzure.PO, cbind(predmeti.letnik, letnik.studentov = letnik))
|
|
|
|
# zakrivanje vrednosti kjer ni dovolj enot
|
|
premalo <- predmeti.letnik[c(paste0(vars.predmet$cont$vars[8:20],"_N"),"predmet.ocena.krediti_N","predmet.ocena.kompetence1_N")] < minEnot
|
|
predmeti.letnik[c(paste0(vars.predmet$cont$vars[8:20],"_mean"),"predmet.ocena.krediti_mean","predmet.ocena.kompetence1_mean")][premalo] <- NA
|
|
|
|
|
|
# average of components - all, before, after exam
|
|
predmeti.letnik$predmet.ocena.SKUPAJ.po <- rowMeans(predmeti.letnik[paste0(vars.predmet$cont$po[-1],"_mean")], na.rm = T)
|
|
predmeti.letnik$predmet.ocena.SKUPAJ.praksa <- rowMeans(predmeti.letnik[paste0(vars.predmet$cont$praksa,"_mean")], na.rm = T)
|
|
|
|
povprecja.predmeti.letniki.PO <- rbind(povprecja.predmeti.letniki.PO, cbind(predmeti.letnik, letnik.studentov=letnik))
|
|
}
|
|
povprecja.predmeti.letniki.PO <- merge(povprecja.predmeti.letniki.PO, povprecja.predmeti[, c("predmet.sifra", "ime.predmeta", "NACIN_STUDIJA")],
|
|
by = "predmet.sifra", all.x = T)
|
|
povprecja.predmeti.letniki.PO.brez.cenzure.PO <- merge(povprecja.predmeti.letniki.PO.brez.cenzure.PO,
|
|
povprecja.predmeti[, c("predmet.sifra", "ime.predmeta", "NACIN_STUDIJA")],
|
|
by = "predmet.sifra", all.x = T)
|
|
## //course averages by students' year// ##
|
|
|
|
|
|
|
|
## course averages by student's year ##
|
|
povprecja.predmeti.letniki <- NULL
|
|
povprecja.predmeti.letniki.brez.cenzure <- NULL # Vsa povprečja oz. vse ocene, tudi tiste, ki imajo 4 odgovore ali manj
|
|
## course averages by students' year ##
|
|
for (letnik in unique(sort(data.predmeti$student.letnik))) {
|
|
# povprečja
|
|
data.letnik <- subset(data.predmeti, student.letnik == letnik)
|
|
# data.letnik.po <- subset(data.predmeti.PO, student.program.sifra == program)
|
|
|
|
predMean <- aggregate(data.letnik[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by = data.letnik["predmet.sifra"], FUN=mean, na.rm=TRUE)
|
|
#predMean.po <- aggregate(data.letnik.po[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.letnik.po["predmet.sifra"], FUN = mean, na.rm = TRUE)
|
|
#predMean <- merge(predMean,predMean.po[c("predmet.sifra","predmet.ocena.kompetence","predmet.ocena.vsebine",
|
|
# "predmet.ocena.naloge","predmet.ocena.kriteriji",
|
|
# "predmet.ocena.krediti","predmet.ocena.kompetence1")], by="predmet.sifra", all=T, sort=F)
|
|
#predMean <- predMean[, -grep(".x", colnames(predMean))]
|
|
#colnames(predMean) <- gsub("\\.y", "", colnames(predMean))
|
|
#predMean <- predMean[c(1:8,18:21,9:17,22:23)]
|
|
colnames(predMean)[2:ncol(predMean)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_mean")
|
|
# N posamezne spremenljivke
|
|
predN <- aggregate(data.letnik[c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)],
|
|
by=data.letnik["predmet.sifra"], FUN=function(x) sum(!is.na(x)))
|
|
#predNpo <- aggregate(data.letnik.po[c(vars.predmet$cont$vars[8:20],vars.predmet$krediti$vars,vars.predmet$kompetence1$vars)], by = data.letnik.po["predmet.sifra"], FUN = function(x) sum(!is.na(x)))
|
|
#predN <- merge(predN,predNpo[c("predmet.sifra","predmet.ocena.kompetence","predmet.ocena.vsebine",
|
|
# "predmet.ocena.naloge","predmet.ocena.kriteriji",
|
|
# "predmet.ocena.krediti","predmet.ocena.kompetence1")], by="predmet.sifra", all=T, sort=F)
|
|
#predN <- predN[, -grep(".x", colnames(predN))]
|
|
#colnames(predN) <- gsub("\\.y", "", colnames(predN))
|
|
#predN <- predN[c(1:8,18:21,9:17,22:23)]
|
|
colnames(predN)[2:ncol(predN)] <- paste0(c(vars.predmet$cont$vars,vars.predmet$krediti$vars,vars.predmet$kompetence1$vars),"_N")
|
|
# N answering before and after exam
|
|
predNanket <- aggregate(data.letnik$veljavna, by = data.letnik["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket)[2] <- "N_anket"
|
|
predNanket_po_izpitu <- aggregate(data.letnik$veljavna_po_izpitu, by=data.letnik["predmet.sifra"], FUN = sum)
|
|
colnames(predNanket_po_izpitu)[2] <- "N_anket_po_izpitu"
|
|
|
|
predmeti.letnik <- merge(predMean, predN, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
predmeti.letnik <- merge(predmeti.letnik, predNanket, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
predmeti.letnik <- merge(predmeti.letnik, predNanket_po_izpitu, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
|
|
povprecja.predmeti.letniki.brez.cenzure <- rbind(povprecja.predmeti.letniki.brez.cenzure, cbind(predmeti.letnik, letnik.studentov = letnik))
|
|
|
|
# zakrivanje vrednosti kjer ni dovolj enot
|
|
premalo <- predmeti.letnik[c(paste0(vars.predmet$cont$vars,"_N"),"predmet.ocena.krediti_N","predmet.ocena.kompetence1_N")] < minEnot
|
|
predmeti.letnik[c(paste0(vars.predmet$cont$vars,"_mean"),"predmet.ocena.krediti_mean","predmet.ocena.kompetence1_mean")][premalo] <- NA
|
|
|
|
|
|
# average of components - all, before, after exam
|
|
predmeti.letnik$predmet.ocena.SKUPAJ <- rowMeans(predmeti.letnik[paste0(vars.predmet$cont$vars,"_mean")], na.rm = T)
|
|
predmeti.letnik$predmet.ocena.SKUPAJ.pred <- rowMeans(predmeti.letnik[paste0(vars.predmet$cont$pred,"_mean")], na.rm = T)
|
|
predmeti.letnik$predmet.ocena.SKUPAJ.po <- rowMeans(predmeti.letnik[paste0(vars.predmet$cont$po[-1],"_mean")], na.rm = T)
|
|
predmeti.letnik$predmet.ocena.SKUPAJ.praksa <- rowMeans(predmeti.letnik[paste0(vars.predmet$cont$praksa,"_mean")], na.rm = T)
|
|
|
|
povprecja.predmeti.letniki <- rbind(povprecja.predmeti.letniki, cbind(predmeti.letnik, letnik.studentov=letnik))
|
|
}
|
|
povprecja.predmeti.letniki <- merge(povprecja.predmeti.letniki, povprecja.predmeti[, c("predmet.sifra", "ime.predmeta", "NACIN_STUDIJA")],
|
|
by = "predmet.sifra", all.x = T)
|
|
povprecja.predmeti.letniki.brez.cenzure <- merge(povprecja.predmeti.letniki.brez.cenzure,
|
|
povprecja.predmeti[, c("predmet.sifra", "ime.predmeta", "NACIN_STUDIJA")],
|
|
by = "predmet.sifra", all.x = T)
|
|
## //course averages by students' year// ##
|
|
|
|
df_dups2 <- povprecja.izvajalci.letniki.brez.cenzure[c("izvajalec.sifra","predmet.sifra")]
|
|
povprecja.izvajalci.letniki.brez.cenzure <- povprecja.izvajalci.letniki.brez.cenzure[!duplicated(df_dups2),]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
####################################
|
|
## lecturer averages by programme ##
|
|
####################################
|
|
povprecja.izvajalci.programi <- NULL
|
|
povprecja.izvajalci.programi.brez.cenzure <- NULL # Vsa povprečja oz. vse ocene, tudi tiste, ki imajo 4 odgovore ali manj
|
|
## lecturer averages by programme ##
|
|
for (program in programi$student.program.sifra) {
|
|
data.program <- subset(data.izvajalci, student.program.sifra == program)
|
|
if (nrow(data.program)>0){
|
|
# povprečja
|
|
izvMean <- aggregate(data.program[vars.izvajalec$cont$vars],by=data.program[c("predmet.sifra","izvajalec.sifra")], FUN = mean, na.rm = TRUE)
|
|
colnames(izvMean)[3:ncol(izvMean)] <- paste0(vars.izvajalec$cont$vars,"_mean")
|
|
|
|
# N posamezne spremenljivke
|
|
izvN <- aggregate(data.program[vars.izvajalec$cont$vars], by=data.program[c("predmet.sifra","izvajalec.sifra")], FUN=function(x) sum(!is.na(x)))
|
|
colnames(izvN)[3:ncol(izvN)] <- paste0(vars.izvajalec$cont$vars,"_N")
|
|
|
|
# N anket
|
|
izvNanket <- aggregate(data.program$veljavna, by=data.program[c("predmet.sifra","izvajalec.sifra")], FUN = sum)
|
|
colnames(izvNanket)[3] <- "N_anket"
|
|
|
|
# Merge
|
|
izvajalci.program <- merge(izvMean, izvN, by=c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
izvajalci.program <- merge(izvajalci.program, izvNanket, by=c("izvajalec.sifra", "predmet.sifra"), all = TRUE, sort = FALSE)
|
|
povprecja.izvajalci.programi.brez.cenzure <- rbind(povprecja.izvajalci.programi.brez.cenzure,
|
|
cbind(izvajalci.program, program.studentov=program,
|
|
program.studentov.ime=programi[programi$student.program.sifra==program,
|
|
"student.program.ime"]))
|
|
|
|
# zakrivanje vrednosti kjer ni dovolj enot
|
|
premalo <- izvajalci.program[paste0(vars.izvajalec$cont$vars,"_N")] < minEnot
|
|
izvajalci.program[paste0(vars.izvajalec$cont$vars,"_mean")][premalo] <- NA
|
|
# average of components
|
|
izvajalci.program$izvajalec.ocena.SKUPAJ <- rowMeans(izvajalci.program[paste0(vars.izvajalec$cont$vars,"_mean")],na.rm=T)
|
|
|
|
povprecja.izvajalci.programi <- rbind(povprecja.izvajalci.programi, cbind(izvajalci.program, program.studentov=program,
|
|
program.studentov.ime=programi[programi$student.program.sifra==program,
|
|
"student.program.ime"]))
|
|
}
|
|
}
|
|
povprecja.izvajalci.programi <- merge(povprecja.izvajalci.programi,
|
|
povprecja.izvajalci[,c("izvajalec.sifra", "predmet.sifra",
|
|
"ime.predmeta", "NAZIV.PEDAGOGA", "NACIN_STUDIJA")],
|
|
by=c("izvajalec.sifra", "predmet.sifra"), all.x=T)
|
|
povprecja.predmeti.programi1 <- merge(povprecja.predmeti.programi,
|
|
povprecja.predmeti[, c("predmet.sifra", "ime.predmeta", "NACIN_STUDIJA",
|
|
"ST_STUD","sodelujocih.pct", "sodelujocih.pct_po_izpitu",
|
|
"zavrnjenih.pct", "zavrnjenih.pct_po_izpitu","neodzivnih.pct",
|
|
"neodzivnih.pct_po_izpitu")],
|
|
by="predmet.sifra", all.x=T)
|
|
|
|
povprecja.izvajalci.programi.brez.cenzure <- merge(povprecja.izvajalci.programi.brez.cenzure,
|
|
povprecja.izvajalci[,c("izvajalec.sifra", "predmet.sifra", "ime.predmeta", "NAZIV.PEDAGOGA", "NACIN_STUDIJA")],
|
|
by=c("izvajalec.sifra", "predmet.sifra"), all.x=T)
|
|
|
|
|
|
|
|
df_dups1 <- povprecja.izvajalci.programi.brez.cenzure[c("izvajalec.sifra","predmet.sifra")]
|
|
povprecja.izvajalci.programi.brez.cenzure <- povprecja.izvajalci.programi.brez.cenzure[!duplicated(df_dups1),]
|
|
|
|
|
|
|
|
## //lecturer averages by programme// ##
|
|
|
|
#########################################
|
|
## lecturer averages by students' year ##
|
|
#########################################
|
|
povprecja.izvajalci.letniki <- NULL
|
|
povprecja.izvajalci.letniki.brez.cenzure <- NULL # Vsa povprečja oz. vse ocene, tudi tiste, ki imajo 4 odgovore ali manj
|
|
## lecturer averages by students' year ##
|
|
for (letnik in unique(sort(data.izvajalci$student.letnik))) {
|
|
data.letnik <- subset(data.izvajalci, student.letnik == letnik)
|
|
|
|
# povprečja
|
|
izvMean <- aggregate(data.letnik[vars.izvajalec$cont$vars], by=data.letnik[c("predmet.sifra","izvajalec.sifra")], FUN=mean, na.rm=TRUE)
|
|
colnames(izvMean)[3:ncol(izvMean)] <- paste0(vars.izvajalec$cont$vars,"_mean")
|
|
|
|
# N posamezne spremenljivke
|
|
izvN <- aggregate(data.letnik[vars.izvajalec$cont$vars], by=data.letnik[c("predmet.sifra","izvajalec.sifra")], FUN=function(x) sum(!is.na(x)))
|
|
colnames(izvN)[3:ncol(izvN)] <- paste0(vars.izvajalec$cont$vars,"_N")
|
|
|
|
# N anket
|
|
izvNanket <- aggregate(data.letnik$veljavna, by=data.letnik[c("predmet.sifra","izvajalec.sifra")], FUN=sum)
|
|
colnames(izvNanket)[3] <- "N_anket"
|
|
|
|
# Merge
|
|
izvajalci.letnik <- merge(izvMean, izvN, by=c("izvajalec.sifra", "predmet.sifra"), all=TRUE, sort=FALSE)
|
|
izvajalci.letnik <- merge(izvajalci.letnik, izvNanket, by=c("izvajalec.sifra", "predmet.sifra"), all=TRUE, sort=FALSE)
|
|
povprecja.izvajalci.letniki.brez.cenzure <- rbind(povprecja.izvajalci.letniki.brez.cenzure,
|
|
cbind(izvajalci.letnik, letnik.studentov=letnik))
|
|
|
|
# zakrivanje vrednosti kjer ni dovolj enot
|
|
premalo <- izvajalci.letnik[paste0(vars.izvajalec$cont$vars,"_N")] < minEnot
|
|
izvajalci.letnik[paste0(vars.izvajalec$cont$vars,"_mean")][premalo] <- NA
|
|
|
|
povprecja.izvajalci.letniki <- rbind(povprecja.izvajalci.letniki, cbind(izvajalci.letnik, letnik.studentov=letnik))
|
|
}
|
|
povprecja.izvajalci.letniki <- merge(povprecja.izvajalci.letniki,
|
|
povprecja.izvajalci[,c("izvajalec.sifra", "predmet.sifra",
|
|
"ime.predmeta", "NAZIV.PEDAGOGA", "NACIN_STUDIJA")],
|
|
by=c("izvajalec.sifra", "predmet.sifra"), all.x=T)
|
|
povprecja.izvajalci.letniki.brez.cenzure <- merge(povprecja.izvajalci.letniki.brez.cenzure,
|
|
povprecja.izvajalci[,c("izvajalec.sifra", "predmet.sifra", "ime.predmeta",
|
|
"NAZIV.PEDAGOGA", "NACIN_STUDIJA")],
|
|
by=c("izvajalec.sifra", "predmet.sifra"), all.x=T)
|
|
## //lecturer averages by students' year// ##
|
|
|
|
############################
|
|
# quantiles by programme #
|
|
###########################
|
|
kvantili.izvajalci.programi <- NULL
|
|
for (program in unique(povprecja.izvajalci.programi$program.studentov)) {
|
|
kvantili.izvajalci.program <- povprecja.izvajalci.programi[povprecja.izvajalci.programi$program.studentov == program &
|
|
povprecja.izvajalci.programi$N_anket > 0,
|
|
c("izvajalec.sifra","predmet.sifra","program.studentov","program.studentov.ime",
|
|
"N_anket",paste0(vars.izvajalec$cont$vars,"_mean"),"izvajalec.ocena.SKUPAJ")]
|
|
for (var in c(paste0(vars.izvajalec$cont$vars,"_mean"),"izvajalec.ocena.SKUPAJ")) {
|
|
kvantili.izvajalci.program[[var]] <- kvantRang(kvantili.izvajalci.program[[var]])
|
|
}
|
|
|
|
for (var in c("N_anket")) {
|
|
kvantili.izvajalci.program[[var]] <- kvantRang1(kvantili.izvajalci.program[[var]])
|
|
}
|
|
|
|
kvantili.izvajalci.programi <- rbind(kvantili.izvajalci.programi, kvantili.izvajalci.program)
|
|
}
|
|
|
|
kvantili.predmeti.programi <- NULL
|
|
for (program in unique(povprecja.predmeti.programi$program.studentov)) {
|
|
kvantili.predmeti.program <- povprecja.predmeti.programi[povprecja.predmeti.programi$program.studentov == program &
|
|
(povprecja.predmeti.programi$N_anket > 0 | povprecja.predmeti.programi$N_anket_po_izpitu > 0),
|
|
c("predmet.sifra","N_anket","N_anket_po_izpitu","program.studentov","program.studentov.ime",
|
|
paste0(vars.predmet$cont$vars,"_mean"),"predmet.ocena.SKUPAJ","predmet.ocena.SKUPAJ.pred",
|
|
"predmet.ocena.SKUPAJ.po","predmet.ocena.SKUPAJ.praksa","predmet.ocena.krediti_mean",
|
|
"predmet.ocena.kompetence1_mean")]
|
|
for (var in c(paste0(vars.predmet$cont$vars,"_mean"),"predmet.ocena.SKUPAJ",
|
|
"predmet.ocena.SKUPAJ.pred","predmet.ocena.SKUPAJ.po","predmet.ocena.SKUPAJ.praksa")) {
|
|
kvantili.predmeti.program[[var]] <- kvantRang(kvantili.predmeti.program[[var]])
|
|
}
|
|
for (var in c("N_anket","N_anket_po_izpitu")) {
|
|
kvantili.predmeti.program[[var]] <- kvantRang1(kvantili.predmeti.program[[var]])
|
|
}
|
|
|
|
for (var in c("predmet.ocena.krediti_mean","predmet.ocena.kompetence1_mean")) {
|
|
kvantili.predmeti.program[[var]] <- kvantRang2(kvantili.predmeti.program[[var]])
|
|
}
|
|
|
|
|
|
kvantili.predmeti.programi <- rbind(kvantili.predmeti.programi, kvantili.predmeti.program)
|
|
}
|
|
|
|
|
|
kvantili.predmeti.programi.PO <- NULL
|
|
for (program in unique(povprecja.predmeti.programi.PO$program.studentov)) {
|
|
kvantili.predmeti.program <- povprecja.predmeti.programi.PO[povprecja.predmeti.programi.PO$program.studentov == program &
|
|
(povprecja.predmeti.programi.PO$N_anket > 0 | povprecja.predmeti.programi.PO$N_anket_po_izpitu > 0),
|
|
c("predmet.sifra","N_anket","N_anket_po_izpitu","program.studentov","program.studentov.ime",
|
|
paste0(vars.predmet$cont$vars[8:20],"_mean"),
|
|
"predmet.ocena.SKUPAJ.po","predmet.ocena.SKUPAJ.praksa","predmet.ocena.krediti_mean",
|
|
"predmet.ocena.kompetence1_mean")]
|
|
for (var in c(paste0(vars.predmet$cont$vars[8:20],"_mean"),"predmet.ocena.SKUPAJ.po","predmet.ocena.SKUPAJ.praksa")) {
|
|
kvantili.predmeti.program[[var]] <- kvantRang(kvantili.predmeti.program[[var]])
|
|
}
|
|
for (var in c("N_anket","N_anket_po_izpitu")) {
|
|
kvantili.predmeti.program[[var]] <- kvantRang1(kvantili.predmeti.program[[var]])
|
|
}
|
|
|
|
for (var in c("predmet.ocena.krediti_mean","predmet.ocena.kompetence1_mean")) {
|
|
kvantili.predmeti.program[[var]] <- kvantRang2(kvantili.predmeti.program[[var]])
|
|
}
|
|
|
|
|
|
kvantili.predmeti.programi.PO <- rbind(kvantili.predmeti.programi.PO, kvantili.predmeti.program)
|
|
}
|
|
# /quantiles by programme/ #
|
|
|
|
|
|
#################################
|
|
## statistics for methodology ## (Glej izpis za izvajalca, in sicer poglavje Metodološko pojasnilo)
|
|
#################################
|
|
data.predmeti <- merge(data.predmeti, sifrant[!duplicated(sifrant$IDP), c("IDP","SEMESTER_IZV")],
|
|
by.x="predmet.sifra", by.y="IDP", all.x=TRUE)
|
|
|
|
## ZIMSKI SEMESTER ##
|
|
metod_XXX <- length(unique(subset(sifrant, SEMESTER_IZV %in% prvi_semester)$IDP)) # število predmetov
|
|
metod_YYY <- length(unique(subset(sifrant, SEMESTER_IZV %in% prvi_semester)$IDPEDAGOGA)) # število pedagogov
|
|
metod_ZZZ <- length(unique(studenti$"ID_studenta_.MD5.")) # Število študentov
|
|
|
|
metod_UUU <- nrow(subset(sifrant, SEMESTER_IZV %in% prvi_semester)) # število izvedb..
|
|
|
|
metod_VVV <- metod_XXX # number of prepared evaluations for courses
|
|
metod_RRR <- metod_UUU # number of prepared evaluations for lecturers
|
|
|
|
# ANKETA PRED izpitom
|
|
metod_X1 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% prvi_semester)$N_anket, na.rm=TRUE) # no. evaluations answers
|
|
metod_X2 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% prvi_semester)$N_zavrnjenih, na.rm=TRUE) # no. evaluations rejected
|
|
metod_X3 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% prvi_semester)$N_neodzivnih, na.rm=TRUE) # no. evaluations didn't start
|
|
method_xsum<-metod_X1+metod_X2+metod_X3
|
|
|
|
metod_X4 <- sum((aggregate(subset(data.predmeti, SEMESTER_IZV %in% prvi_semester)$veljavna, by=data.predmeti[data.predmeti$SEMESTER_IZV %in% prvi_semester, "student.sifra", drop=FALSE], FUN=sum, na.rm=TRUE)$x == 0) & (aggregate(subset(data.predmeti, SEMESTER_IZV %in% prvi_semester)$zavrnjena, by=data.predmeti[data.predmeti$SEMESTER_IZV %in% prvi_semester, "student.sifra", drop=FALSE], FUN=sum, na.rm=TRUE)$x > 0)) # no. students rejected all evaluations
|
|
metod_X5 <- sum(!(unique(studenti$"ID_studenta_.MD5.") %in% data_pred_izpitom[data_pred_izpitom[[navodila["predmet.sifra","lokacije.predmet"]]] %in% subset(sifrant, SEMESTER_IZV %in% prvi_semester)$IDP, navodila["student.sifra","lokacije.student"]])) # no. students with no started evaluations
|
|
metod_X6 <- length(unique(subset(data.predmeti, veljavna & SEMESTER_IZV %in% prvi_semester)$student.sifra)) # no. students participated in at least 1 evaluation
|
|
metodPREDSum <- metod_X4 + metod_X5 + metod_X6
|
|
|
|
metod_X4.pct <- round((metod_X4/metodPREDSum) * 100, 0) # Percentage of students rejected all evaluations
|
|
metod_X5.pct <- round((metod_X5/metodPREDSum) * 100, 0) # Percentage of students with no started evaluations
|
|
metod_X6.pct <- round((metod_X6/metodPREDSum) * 100, 0) # Percentage od students participated in at least 1 evaluation
|
|
|
|
# ANKETA PO izpitu
|
|
metod_Y1 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% prvi_semester)$N_anket_po_izpitu, na.rm=TRUE) # no. evaluations answers
|
|
metod_Y2 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% prvi_semester)$N_zavrnjenih_po_izpitu, na.rm=TRUE) # no. evaluations rejected
|
|
metod_Y3 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% prvi_semester)$N_neodzivnih_po_izpitu, na.rm=TRUE) # no. evaluations didn't start
|
|
|
|
metod_Y4 <- sum((aggregate(subset(data.predmeti, SEMESTER_IZV %in% prvi_semester)$veljavna_po_izpitu, by=data.predmeti[data.predmeti$SEMESTER_IZV %in% prvi_semester, "student.sifra", drop=FALSE], FUN=sum, na.rm=TRUE)$x == 0) & (aggregate(subset(data.predmeti, SEMESTER_IZV %in% prvi_semester)$zavrnjena_po_izpitu, by=data.predmeti[data.predmeti$SEMESTER_IZV %in% prvi_semester, "student.sifra", drop=FALSE], FUN=sum, na.rm=TRUE)$x > 0)) # no. students rejected all evaluations
|
|
metod_Y5 <- sum(!(unique(studenti$"ID_studenta_.MD5.") %in% data_po_izpitu[data_po_izpitu[[navodila["predmet.sifra","lokacije.predmet"]]] %in% subset(sifrant, SEMESTER_IZV %in% prvi_semester)$IDP, navodila["student.sifra","lokacije.student"]])) # no. students with no started evaluations
|
|
metod_Y6 <- length(unique(subset(data.predmeti, veljavna_po_izpitu & SEMESTER_IZV %in% prvi_semester)$student.sifra)) # no. students participated in at least 1 evaluation
|
|
metodPOSum <- metod_Y4 + metod_Y5 + metod_Y6
|
|
|
|
metod_Y4.pct <- round((metod_Y4/metodPOSum) * 100, 0) # Percentage of students rejected all evaluations
|
|
metod_Y5.pct <- round((metod_Y5/metodPOSum) * 100, 0) # Percentage of students with no started evaluations
|
|
metod_Y6.pct <- round((metod_Y6/metodPOSum) * 100, 0) # Percentage od students participated in at least 1 evaluation
|
|
## //ZIMSKI// ##
|
|
|
|
|
|
## LETNI/CELOLETNI (drugi semester) ##
|
|
metod_XXX1 <- length(unique(subset(sifrant, SEMESTER_IZV %in% drugi_semester)$IDP)) # število predmetov
|
|
metod_YYY1 <- length(unique(subset(sifrant, SEMESTER_IZV %in% drugi_semester)$IDPEDAGOGA)) # število pedagogov
|
|
metod_ZZZ1 <- length(unique(studenti$"ID_studenta_.MD5.")) # število študentov
|
|
|
|
metod_UUU1 <- nrow(subset(sifrant, SEMESTER_IZV %in% drugi_semester)) # število izvedb..
|
|
|
|
# ANKETA PRED izpitom
|
|
metod_X11 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% drugi_semester)$N_anket, na.rm=TRUE) # no. evaluations answers
|
|
metod_X21 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% drugi_semester)$N_zavrnjenih, na.rm=TRUE) # no. evaluations rejected
|
|
metod_X31 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% drugi_semester)$N_neodzivnih, na.rm=TRUE) # no. evaluations didn't start
|
|
method_xsum1 <- metod_X11 + metod_X21 + metod_X31
|
|
|
|
if (length(subset(data.predmeti, SEMESTER_IZV %in% drugi_semester)$veljavna > 0)) { # V primeru da ni vrednosti naj bodo v tabela 0 in ne NA vrednosti
|
|
metod_X41 <- sum((aggregate(subset(data.predmeti, SEMESTER_IZV %in% drugi_semester)$veljavna, by=data.predmeti[data.predmeti$SEMESTER_IZV %in% drugi_semester, "student.sifra", drop=FALSE], FUN=sum, na.rm=TRUE)$x == 0) & (aggregate(subset(data.predmeti, SEMESTER_IZV %in% drugi_semester)$zavrnjena, by=data.predmeti[data.predmeti$SEMESTER_IZV %in% drugi_semester, "student.sifra", drop=FALSE], FUN=sum, na.rm=TRUE)$x > 0)) # no. students rejected all evaluations
|
|
} else {metod_X41 <- 0}
|
|
metod_X51 <- sum(!(unique(studenti$"ID_studenta_.MD5.") %in% data_pred_izpitom[data_pred_izpitom[[navodila["predmet.sifra","lokacije.predmet"]]] %in% subset(sifrant, SEMESTER_IZV %in% drugi_semester)$IDP, navodila["student.sifra","lokacije.student"]])) # no. students with no started evaluations
|
|
metod_X61 <- length(unique(subset(data.predmeti, veljavna & SEMESTER_IZV %in% drugi_semester)$student.sifra)) # no. students participated in at least 1 evaluation
|
|
metodPREDSum_2 <- metod_X41 + metod_X51 + metod_X61
|
|
|
|
metod_X41.pct<-round((metod_X41/metodPREDSum_2) * 100, 0) # Percentage of students rejected all evaluations
|
|
metod_X51.pct<-round((metod_X51/metodPREDSum_2) * 100, 0) # Percentage of students with no started evaluations
|
|
metod_X61.pct<-round((metod_X61/metodPREDSum_2) * 100, 0) # Percentage od students participated in at least 1 evaluation
|
|
|
|
# ANKETA PO izpitu
|
|
metod_Y11 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% drugi_semester)$N_anket_po_izpitu, na.rm=TRUE) # no. evaluations answers
|
|
metod_Y21 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% drugi_semester)$N_zavrnjenih_po_izpitu, na.rm=TRUE) # no. evaluations rejected
|
|
metod_Y31 <- sum(subset(povprecja.predmeti, SEMESTER_IZV %in% drugi_semester)$N_neodzivnih_po_izpitu, na.rm=TRUE) # no. evaluations didn't start
|
|
|
|
if (length(subset(data.predmeti, SEMESTER_IZV %in% drugi_semester)$veljavna_po_izpitu > 0)) {
|
|
metod_Y41 <- sum((aggregate(subset(data.predmeti, SEMESTER_IZV %in% drugi_semester)$veljavna_po_izpitu, by=data.predmeti[data.predmeti$SEMESTER_IZV %in% drugi_semester, "student.sifra", drop=FALSE], FUN=sum, na.rm=TRUE)$x == 0) & (aggregate(subset(data.predmeti, SEMESTER_IZV %in% drugi_semester)$zavrnjena_po_izpitu, by=data.predmeti[data.predmeti$SEMESTER_IZV %in% drugi_semester, "student.sifra", drop=FALSE], FUN=sum, na.rm=TRUE)$x > 0)) # no. students rejected all evaluations
|
|
} else {metod_Y41 <- 0}
|
|
metod_Y51 <- sum(!(unique(studenti$"ID_studenta_.MD5.") %in% data_po_izpitu[data_po_izpitu[[navodila["predmet.sifra","lokacije.predmet"]]] %in% subset(sifrant, SEMESTER_IZV %in% drugi_semester)$IDP, navodila["student.sifra","lokacije.student"]])) # no. students with no started evaluations
|
|
metod_Y61 <- length(unique(subset(data.predmeti, veljavna_po_izpitu & SEMESTER_IZV %in% drugi_semester)$student.sifra)) # no. students participated in at least 1 evaluation
|
|
metodPOSum_2 <- metod_Y41 + metod_Y51 + metod_Y61
|
|
|
|
|
|
metod_Y41.pct <- round((metod_Y41/metodPOSum_2) * 100, 0) # Percentage of students rejected all evaluations
|
|
metod_Y51.pct <- round((metod_Y51/metodPOSum_2) * 100, 0) # Percentage of students with no started evaluations
|
|
metod_Y61.pct <- round((metod_Y61/metodPOSum_2) * 100, 0) # Percentage od students participated in at least 1 evaluation
|
|
|
|
## //LETNI/CELOLETNI// ##
|
|
|
|
|
|
# answers
|
|
metod_XX <- round(FDVpredmeti["prvi_semester", "sodelujocih.pct"]) # Delež študentov FDV, ki so v sodelovali v anketi PRED (v prvem semestru)
|
|
metod_YY <- round(FDVpredmeti["prvi_semester", "zavrnjenih.pct"]) # Delež študentov FDV, ki so sodelovanje v anketi PRED zavrnili (v prvem semestru)
|
|
metod_ZZ <- round(FDVpredmeti["prvi_semester", "neodzivnih.pct"]) # Delež študentov FDV, ki ki k anketi PRED niso pristopili (v prvem semestru)
|
|
metod_ZZ1 <- round(FDVpredmeti["prvi_semester", "sodelujocih.pct_po_izpitu"]) # -"- Anketa PO
|
|
metod_ZZ2 <- round(FDVpredmeti["prvi_semester", "zavrnjenih.pct_po_izpitu"]) # -"- Anketa PO
|
|
metod_ZZ3 <- round(FDVpredmeti["prvi_semester", "neodzivnih.pct_po_izpitu"]) # -"- Anketa PO
|
|
|
|
metod_XX1 <- round(FDVpredmeti["drugi_semester", "sodelujocih.pct"])
|
|
metod_XX2 <- round(FDVpredmeti["drugi_semester", "zavrnjenih.pct"])
|
|
metod_XX3 <- round(FDVpredmeti["drugi_semester", "neodzivnih.pct"])
|
|
metod_ZZ1L <- round(FDVpredmeti["drugi_semester", "sodelujocih.pct_po_izpitu"])
|
|
metod_ZZ2L <- round(FDVpredmeti["drugi_semester", "zavrnjenih.pct_po_izpitu"])
|
|
metod_ZZ3L <- round(FDVpredmeti["drugi_semester", "neodzivnih.pct_po_izpitu"])
|
|
|
|
|
|
# Če ni podatkov za drugi semester potem spremenljivkam pripiši vrednost 0 (da v tabelah v poglavju Splošna metodologija ne pojavljajo NA)
|
|
if (is.na(round(FDVpredmeti["drugi_semester", "ST_STUD"])) & is.na(round(FDVpredmeti["drugi_semester", "N_anket"]))) {
|
|
metod_XX1 <- 0
|
|
metod_XX2 <- 0
|
|
metod_XX3 <- 0
|
|
metod_ZZ1L <- 0
|
|
metod_ZZ2L <- 0
|
|
metod_ZZ3L <- 0
|
|
|
|
}
|
|
|
|
# Tekst v poglavju Metodološko pojasnilo
|
|
# da npr. v I. semestru vsak predmet izvaja 2.2 (:RRR:/:XXX:) pedagogov 266/123
|
|
method_IZR <- round(metod_RRR/metod_XXX, digits = 1)
|
|
#vsak pedagog pa v povprečju izvaja 2.5 (266/105) predmetov.
|
|
method_IZR1 <- round(metod_RRR/metod_YYY, digits = 1)
|
|
#Trenutni datum oz stanje izvoza, ki se izpiše pod tabelo v poglavju: Metodološko pojasnilo
|
|
date <- format(Sys.time(), "%d.%m.%Y")
|
|
|
|
# Številke, v poglavju SPLOŠNA METODOLOGIJA (glej npr.
|
|
# ne glede na stopnjo odgovorov je povprečno zadovoljstvo okoli 4.2)
|
|
# Najprej za Dodiplomski študij:
|
|
# Povprečje komponent predmetov po študijskih programih (anketa PRED izpitom) sortirano po povprečju \\textbf{Skupaj}"
|
|
stopnja_program <- merge(povprecja.predmeti[c("predmet.sifra","STOPNJA")],povprecja.predmeti.programi[c("predmet.sifra",paste0(vars.predmet$cont$vars,"_mean"),
|
|
paste0(vars.predmet$krediti$vars,"_mean"),"program.studentov",
|
|
"program.studentov.ime","N_anket","N_anket_po_izpitu" )], by="predmet.sifra", sort=FALSE)
|
|
stopnja_program <- stopnja_program[stopnja_program$N_anket >=minEnot, c("predmet.sifra","program.studentov","program.studentov.ime","STOPNJA")]
|
|
if (nrow(stopnja_program) > 0) {
|
|
stopnja_program <- aggregate(stopnja_program$predmet.sifra,
|
|
by=stopnja_program[c("program.studentov","program.studentov.ime","STOPNJA")],
|
|
function(x) length(unique(x)))
|
|
} else {stopnja_program <- stopnja_program}
|
|
stopnja_program.pred <- merge(test.pred, stopnja_program,
|
|
by.x="student.program.ime",
|
|
by.y="program.studentov.ime",
|
|
all=TRUE)
|
|
program.1stopnja <- aggregate(data.predmeti[vars.predmet.vars],
|
|
by=data.predmeti[c("student.program.sifra","student.program.ime")],
|
|
FUN=mean,
|
|
na.rm=TRUE)
|
|
program.1stopnja <- cbind(program.1stopnja, predmet.ocena.SKUPAJ=rowMeans(program.1stopnja[vars.predmet.vars], na.rm=TRUE))
|
|
stopnja_program1 <- stopnja_program
|
|
colnames(stopnja_program1)[4] <- "N_anket"
|
|
rownames(stopnja_program1) <- stopnja_program1[rownames(stopnja_program1),"student.program.ime"]
|
|
if (nrow(stopnja_program1) > 0) {
|
|
program_BD_pred.skupaj <- merge(stopnja_program1, program.1stopnja,
|
|
by.x=c("program.studentov","program.studentov.ime"),
|
|
by.y=c("student.program.sifra","student.program.ime"), all=TRUE, sort=FALSE)
|
|
program_BD_pred.skupaj <- subset(program_BD_pred.skupaj, STOPNJA==1)
|
|
program_BD_pred.skupaj <- program_BD_pred.skupaj[, !(colnames(program_BD_pred.skupaj) %in% c("STOPNJA"))]
|
|
} else {program_BD_pred.skupaj <- stopnja_program1}
|
|
# Izračunamo povprečje, ki je potem zapisano v poglavju SPLOŠNA METODOLOGIJA
|
|
if (nrow(program_BD_pred.skupaj) > 0) {
|
|
method_povp1 <- round(colMeans(program_BD_pred.skupaj[11:ncol(program_BD_pred.skupaj)], na.rm=TRUE), 1)
|
|
} else {method_povp1 <- 0}
|
|
# ŠE ZA Podiplomski študij:
|
|
# Povprečje komponent predmetov po študijskih programih (anketa PRED izpitom) sortirano po povprečju \\textbf{Skupaj}"
|
|
stopnja_program_podipl <- merge(povprecja.predmeti[c("predmet.sifra","STOPNJA")],
|
|
povprecja.predmeti.programi[c("predmet.sifra",
|
|
paste0(vars.predmet$cont$vars,"_mean"),
|
|
paste0(vars.predmet$krediti$vars,"_mean"),
|
|
"program.studentov","program.studentov.ime",
|
|
"N_anket","N_anket_po_izpitu" )],
|
|
by="predmet.sifra", sort=FALSE)
|
|
stopnja_program_podipl <- stopnja_program_podipl[stopnja_program_podipl$N_anket >=minEnot,
|
|
c("predmet.sifra","program.studentov","program.studentov.ime","STOPNJA")]
|
|
if (nrow(stopnja_program_podipl) > 0) {
|
|
stopnja_program_podipl <- aggregate(stopnja_program_podipl$predmet.sifra,
|
|
by=stopnja_program_podipl[c("program.studentov","program.studentov.ime","STOPNJA")],
|
|
function(x) length(unique(x)))
|
|
}
|
|
stopnja_program_podipl.pred <- merge(test.pred, stopnja_program_podipl,
|
|
by.x="student.program.ime",
|
|
by.y="program.studentov.ime", all=TRUE)
|
|
program.2stopnja <- aggregate(data.predmeti[vars.predmet.vars],
|
|
by=data.predmeti[c("student.program.sifra","student.program.ime")],
|
|
FUN=mean, na.rm=TRUE)
|
|
program.2stopnja <- cbind(program.2stopnja, predmet.ocena.SKUPAJ=rowMeans(program.2stopnja[vars.predmet.vars], na.rm=TRUE))
|
|
stopnja_program_podipl1 <- stopnja_program_podipl
|
|
colnames(stopnja_program_podipl1)[4] <- "N_anket"
|
|
rownames(stopnja_program_podipl1) <- stopnja_program_podipl1[rownames(stopnja_program_podipl1),"student.program.ime"]
|
|
if (nrow(stopnja_program_podipl1) > 0) {
|
|
program_BD_pred.podipl <- merge(stopnja_program_podipl1, program.2stopnja,
|
|
by.x=c("program.studentov","program.studentov.ime"),
|
|
by.y=c("student.program.sifra","student.program.ime"), all=TRUE, sort=FALSE)
|
|
program_BD_pred.podipl <- subset(program_BD_pred.podipl, STOPNJA==2)
|
|
program_BD_pred.podipl <- program_BD_pred.podipl[, !(colnames(program_BD_pred.podipl) %in% c("STOPNJA"))]
|
|
} else{program_BD_pred.podipl <- stopnja_program_podipl1}
|
|
# Izračunamo povprečje, ki je potem zapisano v poglavju SPLOŠNA METODOLOGIJA
|
|
if (nrow(program_BD_pred.podipl) > 0) {
|
|
method_povp2 <- round(colMeans(program_BD_pred.podipl[11:ncol(program_BD_pred.podipl)],na.rm=TRUE), 1)
|
|
} else {method_povp2 <- 0}
|
|
|
|
#Podatki, ki generirajo vrednosti v latex datoteki metodolosko.pojasnilo. Glej mapo latexkosi
|
|
# S funkcijo scan preberemo tex. datoteko metodolosko.pojasnilo.tex
|
|
tex.okvir <- scan("Evalvacija/latexkosi/metodolosko.pojasnilo.tex", character(0), sep = "\n", quiet = TRUE, encoding = 'UTF-8')
|
|
tex.okvir <- gsub(pattern=":XXX:", replacement=metod_XXX, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":YYY:", replacement=metod_YYY, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":ZZZ:", replacement=metod_ZZZ, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":UUU:", replacement=metod_UUU, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":VVV:", replacement=metod_VVV, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":RRR:", replacement=metod_RRR, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":X1:", replacement=method_xsum, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":UUU1:", replacement=metod_UUU1, x=tex.okvir)
|
|
|
|
tex.okvir <- gsub(pattern=":XXX1:", replacement=metod_XXX1, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":YYY1:", replacement=metod_YYY1, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":ZZZ1:", replacement=metod_ZZZ1, x=tex.okvir)
|
|
|
|
tex.okvir <- gsub(pattern=":XX:", replacement=metod_XX, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":YY:", replacement=metod_YY, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":ZZ:", replacement=metod_ZZ, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":ZZ1:", replacement=metod_ZZ1, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":ZZ2:", replacement=metod_ZZ2, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":ZZ3:", replacement=metod_ZZ3, x=tex.okvir)
|
|
|
|
# DELEŽ študentov (PRVI SMESTER)
|
|
## ANKETA PRED
|
|
# no. students rejected all evaluations
|
|
tex.okvir <- gsub(pattern=":metod_X4.pct:", replacement=metod_X4.pct, x=tex.okvir)
|
|
# no. students with no started evaluations
|
|
tex.okvir <- gsub(pattern=":metod_X5.pct:", replacement=metod_X5.pct, x=tex.okvir)
|
|
# no. students participated in at least 1 evaluation
|
|
tex.okvir <- gsub(pattern=":metod_X6.pct:", replacement=metod_X6.pct, x=tex.okvir)
|
|
## ANKETA PO
|
|
# no. students rejected all evaluations
|
|
tex.okvir <- gsub(pattern=":metod_Y4.pct:", replacement=metod_Y4.pct, x=tex.okvir)
|
|
# no. students with no started evaluations
|
|
tex.okvir <- gsub(pattern=":metod_Y5.pct:", replacement=metod_Y5.pct, x=tex.okvir)
|
|
# no. students participated in at least 1 evaluation
|
|
tex.okvir <- gsub(pattern=":metod_Y6.pct:", replacement=metod_Y6.pct, x=tex.okvir)
|
|
|
|
# DRUGI SEMESTER ANKETA PRED IN PO IZPITU
|
|
tex.okvir <- gsub(pattern=":XX1:", replacement=metod_XX1, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":XX2:", replacement=metod_XX2, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":XX3:", replacement=metod_XX3, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":ZZ1L:", replacement=metod_ZZ1L, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":ZZ2L:", replacement=metod_ZZ2L, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":ZZ3L:", replacement=metod_ZZ3L, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":Y1:", replacement=method_xsum1, x=tex.okvir)
|
|
|
|
tex.okvir <- gsub(pattern=":IZR:", replacement=method_IZR, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":IZR1:", replacement=method_IZR1, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":IME:", replacement=fakulteta, x=tex.okvir)
|
|
|
|
# Datum izvoza podatkov (tabele v metodologiji)
|
|
tex.okvir <- gsub(pattern=":DATUM:", replacement=date, x=tex.okvir)
|
|
|
|
|
|
# DELEŽ študentov (DRUGI SMESTER)
|
|
## ANKETA PRED
|
|
# no. students rejected all evaluations
|
|
tex.okvir <- gsub(pattern=":metod_X41.pct:", replacement=metod_X41.pct, x=tex.okvir)
|
|
# no. students with no started evaluations
|
|
tex.okvir <- gsub(pattern=":metod_X51.pct:", replacement=metod_X51.pct, x=tex.okvir)
|
|
# no. students participated in at least 1 evaluation
|
|
tex.okvir <- gsub(pattern=":metod_X61.pct:", replacement=metod_X61.pct, x=tex.okvir)
|
|
## ANKETA PO
|
|
# no. students rejected all evaluations
|
|
tex.okvir <- gsub(pattern=":metod_Y41.pct:", replacement=metod_Y41.pct, x=tex.okvir)
|
|
# no. students with no started evaluations
|
|
tex.okvir <- gsub(pattern=":metod_Y51.pct:", replacement=metod_Y51.pct, x=tex.okvir)
|
|
# no. students participated in at least 1 evaluation
|
|
tex.okvir <- gsub(pattern=":metod_Y61.pct:", replacement=metod_Y61.pct, x=tex.okvir)
|
|
|
|
|
|
#Poglavje SPLOŠNA METODOLOGIJA
|
|
#Številka oz povprečji za dodiplomski in podpilomski študij za anketo PRED izpitom
|
|
tex.okvir <- gsub(pattern=":DODI:", replacement=method_povp1, x=tex.okvir)
|
|
tex.okvir <- gsub(pattern=":PODI:", replacement=method_povp2, x=tex.okvir)
|
|
# /statistics for methodology/ #
|
|
|
|
|
|
|
|
# Dodatno Pojasnilo za tabele: glej skripto koda-izvajalec_predmet.r
|
|
# Opomba za Uszreznost KT
|
|
KTust <- "{\\footnotesize \\textit{* Vrednost pod 3.0 pomeni, da je predmet glede
|
|
na \\guillemotright število kreditnih točk\\guillemotleft \\ zahteval podpovprečno
|
|
število ur, vrednost nad 3.0 pa pomeni nadpovprečno število ur.
|
|
{\\color{Orange}\\textbf{Oranžno}} so označena opazna
|
|
odstopanja ({\\color{Orange}\\textbf{2.4-2.6}}) in ({\\color{Orange}\\textbf{3.4-3.6}}),
|
|
{\\color{BrickRed}\\textbf{rdeče}} pa izrazita
|
|
odstopanja (pod {\\color{BrickRed}\\textbf{2.4}}) in (nad {\\color{BrickRed}\\textbf{3.6}}).
|
|
\\newline ** Program je izbran na podlagi najvišjega števila odgovorov. Ocene ostalih programov,
|
|
v katere so vpisani študenti, so v poglavju \\textbf{Sumarne ocene študijskih programov}.}}"
|
|
|
|
# Vprašanje komponente Kompetence
|
|
Kompetence.note <- "{\\footnotesize \\textit{* \\guillemotright Tekst vprašanja: V kolikšni meri
|
|
ste pri predmetu pridobili pričakovane \\textbf{kompetence}? \\guillemotleft }}"
|
|
|
|
# Kvantilni rangi
|
|
kvan.pojas <- "{\\footnotesize \\textit{* Vrednost za \\guillemotright št.odgovorov\\guillemotleft\\ je kvantilni rang
|
|
za odgovarjajoče vrednosti, vendar ni obarvan, saj gre za administrativni podatek.}}"
|
|
kvan.pojas1 <- "{\\footnotesize \\textit{* Gre za vse predmete z vsaj 4 odgovori (tudi predmete drugih programov,
|
|
če so bili izbirni), ki so jih vpisali študenti določenega programa. \\newline ** Vrednost za \\guillemotright št.odgovorov\\guillemotleft\\
|
|
je kvantilni rang za odgovarjajoče vrednosti v tabeli 1.1 (položaj predmeta med vsemi predmeti določenega programa),
|
|
vendar ni obarvan, saj gre za administrativni podatek.}}"
|
|
kvan.pojas3 <- c(paste0("{\\footnotesize \\textit{* Vrednost za \\guillemotright št.odgovorov\\guillemotleft\\ je kvantilni rang
|
|
za odgovarjajoče vrednosti v tabeli 1.3 (položaj IPP med vsemi IPP določenega programa v pogledu števila vpisanih študentov).
|
|
\\newline ** Gre za vse predmete z vsaj 4 odgovori
|
|
(vključno s predmeti drugih programov, če so bili izbirni), ki so jih vpisali študenti določenega programa.
|
|
\\newline *** \\guillemotright št. IPP\\guillemotleft \\ - število vseh izvajalcev pri predmetih na določenem programu
|
|
(v povprečju ima vsak predmet ", method_IZR ," izvajalca).}}"))
|
|
# NOT USING THIS NOW
|
|
# Pojasnilo za izvajalca pri predmetu: študijski program
|
|
# pojasIZV.tmp <- c(paste0("{\\footnotesize \\textit{* Prikazani so samo programi, pri katerih je imel izvajalec vsaj 4 ocene.
|
|
# \\newline ** \\guillemotright št. IPP\\guillemotleft \\ - število vseh izvajalcev pri predmetih na določenem programu
|
|
# (v povprečju ima vsak predmet ", method_IZR ," izvajalca).}}"))
|
|
# Pojasnilo za izvajalca
|
|
# pojasPRED.tmp <- c(paste0("{\\footnotesize \\textit{* Prikazani so samo programi, pri katerih je imel izvajalec vsaj 4 ocene.}}"))
|
|
|
|
|
|
|
|
######DODATNI PODATKI ZA TABELE ANALIZA IZVAJALCA PRI PREDMETU PO PROGRAMIH IN LETNIKIH: glej skripto koda-izvajalec_predmet.r
|
|
proggIZ.tmp <- povprecja.izvajalci.programi[povprecja.izvajalci.programi$N_anket >=minEnot, c("predmet.sifra","program.studentov","program.studentov.ime")]
|
|
if (nrow(proggIZ.tmp) > 0) {
|
|
proggIZ.tmp <- aggregate(proggIZ.tmp$predmet.sifra, by = proggIZ.tmp[c("program.studentov","program.studentov.ime")], function(x) length(x))
|
|
izv.predmet <- merge(test2, proggIZ.tmp, by.x="student.program.ime", by.y = "program.studentov.ime", all = TRUE)
|
|
} else {izv.predmet <- proggIZ.tmp}
|
|
|
|
######DODATNI PODATKI ZA TABELE ANALIZE PREDMETA PO PROGRAMIH IN LETNIKIH - ANKETA PRED
|
|
proggPRED.tmp <- povprecja.predmeti.programi[povprecja.predmeti.programi$N_anket >=minEnot,
|
|
c("predmet.sifra","program.studentov","program.studentov.ime")]
|
|
if (nrow(proggPRED.tmp) > 0) {
|
|
proggPRED.tmp <- aggregate(proggPRED.tmp$predmet.sifra, by = proggPRED.tmp[c("program.studentov","program.studentov.ime")],
|
|
function(x) length(unique(x)))
|
|
pred.predmet <- merge(test.pred, proggPRED.tmp,
|
|
by.x = "student.program.ime", by.y = "program.studentov.ime", all = TRUE)
|
|
} else {pred.predmet <- proggPRED.tmp}
|
|
###// ANKETA PRED //###
|
|
|
|
|
|
######DODATNI PODATKI ZA TABELE ANALIZE PREDMETA PO PROGRAMIH IN LETNIKIH - ANKETA PO
|
|
test.po <- aggregate(data.predmeti.PO[vars.predmet$cont$po], by = data.predmeti.PO[c("student.program.ime")], FUN = mean, na.rm = TRUE)
|
|
test.po <- cbind(test.po, predmet.ocena.SKUPAJ = rowMeans(test.po[vars.predmet$cont$po[-1]], na.rm = TRUE))
|
|
test.po <- round_df(test.po, 1)
|
|
proggPO.tmp <- povprecja.predmeti.programi.PO[povprecja.predmeti.programi.PO$N_anket_po_izpitu >=minEnot, c("predmet.sifra","program.studentov","program.studentov.ime")]
|
|
if (nrow(proggPO.tmp)>0) {
|
|
proggPO.tmp <- aggregate(proggPO.tmp$predmet.sifra, by=proggPO.tmp[c("program.studentov","program.studentov.ime")], function(x) length(unique(x)))
|
|
proggPO.tmp1 <- proggPO.tmp
|
|
colnames(proggPO.tmp1)[3] <- "N_anket"
|
|
po.predmet <- merge(test.po, proggPO.tmp, by.x = "student.program.ime", by.y = "program.studentov.ime", all = TRUE)
|
|
} else {proggPO.tmp <- NULL
|
|
proggPO.tmp1 <- NULL
|
|
po.predmet <- NULL
|
|
}
|
|
## //ANKETA PO// ##
|
|
|
|
#FAKULTETA: PROGRAMI-ANKETA PRED IZPITOM
|
|
# Povprečja komponent predmetov ankete PRED izpitom po študijskih programih
|
|
progMeanPRED.tmp <- aggregate(data.predmeti[vars.predmet.vars],
|
|
by = data.predmeti[c("student.program.sifra","student.program.ime")],
|
|
FUN = mean, na.rm = TRUE)
|
|
progMeanPRED.tmp <- cbind(progMeanPRED.tmp, predmet.ocena.SKUPAJ = rowMeans(progMeanPRED.tmp[vars.predmet.vars], na.rm = TRUE))
|
|
proggPRED.tmp1 <- proggPRED.tmp
|
|
colnames(proggPRED.tmp1)[3] <- "N_anket"
|
|
if (nrow(proggPRED.tmp1) > 0) {
|
|
progMeanPRED.n <- merge(proggPRED.tmp1, progMeanPRED.tmp,
|
|
by.x = c("program.studentov","program.studentov.ime"),
|
|
by.y = c("student.program.sifra","student.program.ime"), all = TRUE, sort = FALSE)
|
|
} else {progMeanPRED.n <- proggPRED.tmp1}
|
|
|
|
#Dodajanje povprečja programa k izvajalcu na konec
|
|
#Povprečja programov anketa pred izpitom 1 STOPNJAA
|
|
program_1stopnja <- proggPRED.tmp
|
|
|
|
|
|
########################################################
|
|
### analiza predmeta po smereh in letnikih študentov ###
|
|
#tabelaBy (ki jo uporabimo v koda-izvajalec_predmet.r)
|
|
#######################################################
|
|
# Anketa PRED
|
|
# Pojasnilo funkcije tabelaby1: glej skripto koda-izvajalec_predmet.r
|
|
# Ločimo komponente, na komponente, ki so v anketi PRED izpitom in anketi PO izpitu, saj ji bomo zapisali v ločeni tabeli
|
|
vars.predmet$cont$ime.kratko1 <- vars.predmet$cont$ime.kratko[-c(12,13,14,15,16,17,18,19,20)]
|
|
vars.predmet$cont$decimalke1 <- vars.predmet$cont$decimalke[-c(12,13,14,15,16,17,18,19,20)]
|
|
vars.predmet$cont$pobarvanka1 <- vars.predmet$cont$pobarvanka[-c(12,13,14,15,16,17,18,19,20)]
|
|
|
|
# Komponente PRED izpitom zapišemo v vektorje, ki bodo v Latex tabelah
|
|
komponente.predmeta.PRED <- vars.predmet$cont$vars1[-c(8,9,10,11)] # Komponente: Zadovoljstvo, Usklajenost, Samostojnost, ...itd
|
|
imena_stolpcevPRED <- as.character(vars.predmet$cont$ime.kratko1[-c(8,9,10,11)]) # Komponente, ki bodo kot imena stolpcev v tabeli tabelaBy1
|
|
decimalno_mestoPRED <- as.numeric(vars.predmet$cont$decimalke1[-c(8,9,10,11)]) # Decimalke: zakoroževanje povprečnih vrednosti komponent na 1 decimalno mesto
|
|
pobarvanka.PRED <- as.character(vars.predmet$cont$pobarvanka1[-c(8,9,10,11)]) # Pobarvanka: mejne vrednosti "3,4,Inf,Inf", ki barvajo povprečja v tabelah
|
|
|
|
|
|
# Pojasnilo funkcije tabelaby2: glej skripto koda-izvajalec_predmet.r
|
|
# Anketa PO
|
|
komponente.predmeta.PO <- vars.predmet$cont$vars1[-c(1,2,3,4,5,6,7)] # Komponente za anketo PO izpitu: Kompetence, Vsebine, naloge, Kriteriji + Ustreznost kreditnih točk
|
|
imena_stolpcevPO <- as.character(vars.predmet$cont$ime.kratko1[-c(1,2,3,4,5,6,7)]) # Komponente bodo predstavljale imena stolpcev v tabelah
|
|
decimalno_mestoPO <- as.numeric(vars.predmet$cont$decimalke1[-c(1,2,3,4,5,6,7)])
|
|
pobarvanka.PO <- as.character(vars.predmet$cont$pobarvanka1[-c(1,2,3,4,5,6,7)])
|
|
|
|
# Iz stringa povlečemo le števila
|
|
# Pride v poštev v tabelah v povzetku, kjer so negativne vrednosti za delež nesodelujočih
|
|
#library(stringr)
|
|
#numextract <- function(string){
|
|
# str_extract(string, "\\-*\\d+\\.*\\d*")
|
|
#}
|
|
|
|
##############################################################
|
|
# KOMENTARJI PRI POVPREČJIH IZVAJALCEV HABILITACIJSKA KOMISIJA
|
|
# K povprečni ocenam izvajalcev dodamo še komentarje študentov
|
|
# Uporabimo le vpimeru, da delamo poročila za habilitacijsko komisijo
|
|
Habilitacijska <- FALSE
|
|
if (Habilitacijska == TRUE) {
|
|
povprecja.izvajalci <- merge(povprecja.izvajalci, data.izvajalci[c("izvajalec.sifra","predmet.sifra","izvajalec.komentar.dobro","izvajalec.komentar.slabo")],
|
|
by=c("izvajalec.sifra","predmet.sifra"), all = T, sort = F)
|
|
# Ustvarimo csv datoteki, ki ju nato uporabimo za generiranje poročil TRENDOV in HABILITACIJSKE KOMISIJE
|
|
write.csv2(povprecja.izvajalci,"povprecja.izvajalci.csv")
|
|
write.csv2(povprecja.predmeti,"povprecja.predmeti.csv")
|
|
}
|
|
#############################################################
|
|
povprecja.predmeti <- merge(povprecja.predmeti, poNLurkerji, by = "predmet.sifra", all = TRUE, sort = FALSE)
|
|
|
|
|
|
|
|
# df_dups <- povprecja.izvajalci[c("izvajalec.sifra","predmet.sifra")]
|
|
#
|
|
# povprecja.izvajalci <- povprecja.izvajalci[!duplicated(df_dups),]
|
|
#
|
|
#
|
|
# df_dups1 <- povprecja.izvajalci.programi.brez.cenzure[c("izvajalec.sifra","predmet.sifra")]
|
|
# povprecja.izvajalci.programi.brez.cenzure <- povprecja.izvajalci.programi.brez.cenzure[!duplicated(df_dups1),]
|
|
#
|
|
#
|
|
# df_dups2 <- povprecja.izvajalci.letniki.brez.cenzure[c("izvajalec.sifra","predmet.sifra")]
|
|
# povprecja.izvajalci.letniki.brez.cenzure <- povprecja.izvajalci.letniki.brez.cenzure[!duplicated(df_dups2),]
|
|
#
|
|
#
|
|
#
|
|
#
|
|
|