summaryrefslogtreecommitdiffstats
path: root/admin/survey/modules/mod_uporabnost/R/calc.usability.R
diff options
context:
space:
mode:
Diffstat (limited to 'admin/survey/modules/mod_uporabnost/R/calc.usability.R')
-rw-r--r--admin/survey/modules/mod_uporabnost/R/calc.usability.R72
1 files changed, 72 insertions, 0 deletions
diff --git a/admin/survey/modules/mod_uporabnost/R/calc.usability.R b/admin/survey/modules/mod_uporabnost/R/calc.usability.R
new file mode 100644
index 0000000..4e4bb0c
--- /dev/null
+++ b/admin/survey/modules/mod_uporabnost/R/calc.usability.R
@@ -0,0 +1,72 @@
+calc.usability <- function(m.all, return.type){
+ # return.type:
+ # 1: return only absolute
+ # 2: return only %
+ # 3: return both (even rows: absolute, odd rows: %)
+
+ ## calculations
+ m.all[, Prekinitve:=v3]
+ m.all[, Neodgovori:=v1]
+ m.all[, Nevsebinski:=v96+v97+v98+v99]
+ m.all[, Izpostavljen:=allqs-(v2+v3+v4+v5)]
+ setnames(m.all, "va", "Veljavni")
+
+ m.all[, UNL:=Neodgovori/Izpostavljen]
+ m.all[is.na(UNL)==T, UNL:=0]
+ m.all[, UML:=(v3/allqs)+(1-(v3/allqs))*UNL]
+ m.all[, UCL:=1-UML]
+ m.all[, UIL:=v2/(v2+Izpostavljen)]
+ m.all[is.na(UIL)==T, UIL:=0]
+ m.all[, UAQ:=v4/allqs]
+
+ m.all[, Uporabnost:=1-UML]
+
+ #tidy up
+ setcolorder(m.all, c("recnum", "allqs", "Veljavni", "Nevsebinski", "Neodgovori",
+ "Izpostavljen", "Prekinitve", "Uporabnost",
+ "v1", "v2", "v3", "v4", "v5", "v96", "v97", "v98", "v99",
+ "UNL", "UML", "UCL", "UIL", "UAQ"))
+
+ if(return.type==1){
+ return(m.all)
+ }else{
+ m.all.p <- copy(m.all)
+
+ m.all.p[, (c("Veljavni", "Nevsebinski", "Neodgovori")) := lapply(.SD, "/", m.all.p$Izpostavljen), .SDcols=c("Veljavni", "Nevsebinski", "Neodgovori")]
+ m.all.p[, (c("Prekinitve", "v1", "v2", "v3", "v4", "v5", "v96", "v97", "v98", "v99")) := lapply(.SD, "/", m.all.p$allqs), .SDcols=c("Prekinitve", "v1", "v2", "v3", "v4", "v5", "v96", "v97", "v98", "v99")]
+ m.all.p[, Izpostavljen:=1]
+
+ if(return.type==2){
+ return(m.all.p)
+ }else{
+ m.all[, Uporabnost:=Veljavni]
+ m.all[, c("UNL", "UML", "UCL", "UIL", "UAQ"):=NA]
+ m.all <- m.all[, lapply(.SD, as.character)]
+
+ m.all.p[, allqs:=NA]
+ m.all.p[, allqs:=as.character(allqs)]
+
+ change.cols <- c("Veljavni", "Nevsebinski", "Neodgovori", "Izpostavljen", "Prekinitve", "Uporabnost",
+ "v1", "v2", "v3", "v4", "v5", "v96", "v97", "v98", "v99",
+ "UNL", "UML", "UCL", "UIL", "UAQ")
+ m.all.p[, (change.cols):=lapply(.SD, function(x){paste0(round(x*100, 0), "%")}), .SD=change.cols]
+
+ m.1ka <- data.table(matrix("", nrow=nrow(m.all)*2, ncol=ncol(m.all)))
+
+ a.rows <- as.integer(seq(1, nrow(m.1ka), by=2))
+ p.rows <- as.integer(seq(2, nrow(m.1ka), by=2))
+
+ set(m.1ka, a.rows, 1:ncol(m.1ka), value=m.all)
+ suppressWarnings(set(m.1ka, p.rows, 1:ncol(m.1ka), value=m.all.p))
+
+ setnames(m.1ka, colnames(m.all))
+ m.1ka[, Status:=NA_character_]
+ setcolorder(m.1ka, c("recnum", "allqs", "Veljavni", "Nevsebinski", "Neodgovori",
+ "Izpostavljen", "Prekinitve", "Uporabnost", "Status",
+ "v1", "v2", "v3", "v4", "v5", "v96", "v97", "v98", "v99",
+ "UNL", "UML", "UCL", "UIL", "UAQ"))
+
+ return(m.1ka)
+ }
+ }
+} \ No newline at end of file