Evoli: Dodano slovensko poročilo Teamship metra
This commit is contained in:
parent
21c5cbe9a9
commit
4b7a3b7ef1
851
admin/survey/modules/mod_EVOLI/R/Evoli_teamship_meter_slo.R
Normal file
851
admin/survey/modules/mod_EVOLI/R/Evoli_teamship_meter_slo.R
Normal file
@ -0,0 +1,851 @@
|
||||
############################################################################
|
||||
############################################################################
|
||||
### ###
|
||||
### SKUPINSKO POROCILO ###
|
||||
### SLOVENSKA VERZIJA ###
|
||||
### POROCILO TEAMSHIP METER ###
|
||||
### ###
|
||||
############################################################################
|
||||
############################################################################
|
||||
|
||||
##::::::::::::::::::::::
|
||||
## Kodiranje streznik
|
||||
##::::::::::::::::::::::
|
||||
|
||||
Sys.setlocale(category = "LC_ALL", locale = "slovenian")
|
||||
|
||||
##::::::::::::::::::::::::::::::::::::::::
|
||||
## Namestitev paketov, ki jih uporabimo
|
||||
##::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
# Navedemo potrebne pakete
|
||||
potrebni_paketi <- c('tools',
|
||||
'Cairo',
|
||||
'gridExtra',
|
||||
'ggplot2',
|
||||
'grid',
|
||||
'scales',
|
||||
'plyr',
|
||||
'dplyr')
|
||||
|
||||
# Namestimo manjkajoce pakete
|
||||
manjkajoci_paketi <- rownames(installed.packages())
|
||||
namestitev_paketov <- potrebni_paketi[!(potrebni_paketi %in% manjkajoci_paketi)]
|
||||
|
||||
if (length(namestitev_paketov) > 0)
|
||||
install.packages(namestitev_paketov)
|
||||
|
||||
# Nalozimo potrebne pakete
|
||||
lapply(potrebni_paketi, require, character.only = TRUE)
|
||||
|
||||
##::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
## Nalozitev lastnih funkcij glede na relativno pot do datoteke
|
||||
##::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
|
||||
source("modules/mod_EVOLI/R/my_functions.R")
|
||||
|
||||
##:::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
## Prenos argumentov R skripti iz ukazne vrstice
|
||||
##:::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
params <- commandArgs(trailingOnly = TRUE)
|
||||
ID <- params[1]
|
||||
|
||||
##:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
## Ustvarjanje map za shranjevanje koncnega PDF-ja
|
||||
##:::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
# Mapa s pdfjem
|
||||
dir.create('modules/mod_EVOLI/results', showWarnings = FALSE)
|
||||
# Mapa s slikami, ki bodo v PDF-ju
|
||||
dir.create('modules/mod_EVOLI/results/slike', showWarnings = FALSE)
|
||||
|
||||
##::::::::::::::::::::::::::::::::
|
||||
## Uvoz in filtriranje podatkov
|
||||
##::::::::::::::::::::::::::::::::
|
||||
|
||||
# Branje podatkov iz csv datoteke
|
||||
data <- read.csv2(
|
||||
"modules/mod_EVOLI/temp/evoli_teamship.csv",
|
||||
sep = ";",
|
||||
header = T,
|
||||
fill = T,
|
||||
stringsAsFactors = FALSE,
|
||||
encoding = "UTF-8"
|
||||
)
|
||||
|
||||
# Ce je v prvem stolpcu prve vrstice "Ustreznost" ali "Relevance" potem prvo vrstico odstranimo
|
||||
if (data[1, 1] == ("Ustreznost") |
|
||||
data[1, 1] == ("Relevance"))
|
||||
data <- data[2:nrow(data), ]
|
||||
|
||||
# Izberemo dokon?ane ankete skupine 1 in odstranimo podatke brez oddelka
|
||||
data <- data %>%
|
||||
subset(skupina == ID) %>%
|
||||
subset(oddelek_ime != -1) %>%
|
||||
subset(status == 6)
|
||||
|
||||
# Odstranimo vrstice, ki vsebujejo vrednosti neveljavnih odgovorov (od -1 do -5)
|
||||
neveljavno <- c("-1", "-2", "-3", "-4", "-5")
|
||||
data <-
|
||||
data[!apply(data[grep("var", names(data), value = T)], 1, function(x) {
|
||||
any(x %in% neveljavno)
|
||||
}),]
|
||||
|
||||
##:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
## Skupine na podlagi katerih se bodo izracunale in izrisale vrednosti na grafih
|
||||
##:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
# Izracun stevila odgovorov po posameznem oddelku
|
||||
oddelki <- as.data.frame(table(data$oddelek_ime), stringsAsFactors=FALSE)
|
||||
oddelki <- oddelki %>%
|
||||
dplyr::rename(ime = Var1,
|
||||
stevilo = Freq)
|
||||
|
||||
# Izracun deleza odgovorov za vse oddelke
|
||||
oddelki$delez <-
|
||||
round(oddelki$stevilo / sum(oddelki$stevilo) * 100, 1)
|
||||
|
||||
# Ali ima podjetje oddelke
|
||||
if (any(oddelki$ime == "-1")) {
|
||||
oddelki$ime <- unique(data$skupina_ime)
|
||||
data["oddelek_ime"] <- unique(data$skupina_ime)
|
||||
}
|
||||
|
||||
##:::::::::::::::::::::::::::
|
||||
## LaTeX frekvencna tabela
|
||||
##:::::::::::::::::::::::::::
|
||||
|
||||
#------------- LATEX FREQUENCY TABLE ----------------#
|
||||
# Generating table of frequencies and percentages for each area
|
||||
table <- cbind.data.frame(
|
||||
freq=as.numeric(c(oddelek_length$oddelek_ime)),
|
||||
perc=as.numeric(c(oddelek_length$percentage))
|
||||
)
|
||||
|
||||
# Add TOTAl
|
||||
table <- rbind(table, colSums(table, na.rm=TRUE))
|
||||
|
||||
# Paste % simbol
|
||||
table$perc <- round(table$perc, 0)
|
||||
table$perc <- paste0(table$perc, "\\%", sep = "")
|
||||
|
||||
# Name of rows
|
||||
rownames(table) <- c(oddelek_length$group, "Total")
|
||||
|
||||
# Name of rows
|
||||
colnames(table) <- c('Frekvenca', 'Odstotek')
|
||||
|
||||
# Latex Table: vertikalne \u010Drte pri vsaki vrstici
|
||||
table.tex <-
|
||||
capture.output(Hmisc::latex(table,
|
||||
rowlabel = "Teamship meter",
|
||||
file = "",
|
||||
where = "H",
|
||||
rowlabel.just = "p{6.5cm}",
|
||||
col.just = c("|c","|c"),
|
||||
n.rgroup = rep_len(1, nrow(table)),
|
||||
rowname = Hmisc::latexTranslate(rownames(table))
|
||||
)
|
||||
)
|
||||
#------------- LATEX FREQUENCY TABLE ----------------#
|
||||
|
||||
##:::::::::::::::::::::::::::::::
|
||||
## Opredelitev skupin vprasanj
|
||||
##:::::::::::::::::::::::::::::::
|
||||
|
||||
skupina_1 <- paste0("var", c("001", "016", "031", "046", "061", "076", "090", "102", "115", "118"))
|
||||
skupina_2 <- paste0("var", c("002", "017", "032", "047", "062", "077"))
|
||||
skupina_3 <- paste0("var", c("003", "018", "033", "048", "063", "078", "091", "103"))
|
||||
skupina_4 <- paste0("var", c("004", "019", "034", "049", "064", "079", "092"))
|
||||
skupina_5 <- paste0("var", c("005", "020", "035", "050", "065"))
|
||||
skupina_6 <- paste0("var", c("006", "021", "036", "051", "066", "080", "093", "104", "111"))
|
||||
skupina_7 <- paste0("var", c("007", "022", "037", "052", "067", "081"))
|
||||
skupina_8 <- paste0("var", c("008", "023", "038", "053", "068", "082", "094", "105"))
|
||||
skupina_9 <- paste0("var", c("009", "024", "039", "054", "069", "083", "095", "106", "112", "116"))
|
||||
skupina_10 <- paste0("var", c("010", "025", "040", "055", "070", "084", "096", "107"))
|
||||
skupina_11 <- paste0("var", c("011", "026", "041", "056", "071", "085", "097"))
|
||||
skupina_12 <- paste0("var", c("012", "027", "042", "057", "072", "086", "098"))
|
||||
skupina_13 <- paste0("var", c("013", "028", "043", "058", "073", "087", "099", "108", "113"))
|
||||
skupina_14 <- paste0("var", c("014", "029", "044", "059", "074", "088", "100", "109", "114", "117"))
|
||||
skupina_15 <- paste0("var", c("015", "030", "045", "060", "065", "089", "101"))
|
||||
|
||||
##::::::::::::::::::::::::::::::::::::::::::::
|
||||
## Hranjenje podatkov za grafe o dejavnikih
|
||||
##::::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
Izjava_o_p <-
|
||||
Vizija <-
|
||||
Organizacija <-
|
||||
Kultura <-
|
||||
Sistem_v <-
|
||||
Stil_v <-
|
||||
Kadrovske_p <-
|
||||
Zaposlitvena_p <-
|
||||
Nagrade_in_p <-
|
||||
Napredovanje <-
|
||||
Notranja_k <-
|
||||
Informacijski_s <-
|
||||
Politika_k <-
|
||||
Uceca_se_o <-
|
||||
dobro_del <- data.frame(
|
||||
Ocena = character(),
|
||||
Percentage = double(),
|
||||
label = character(),
|
||||
name = character(),
|
||||
pozicija = double(),
|
||||
delez = character(),
|
||||
stringsAsFactors=FALSE
|
||||
)
|
||||
|
||||
# LaTeX zapis prvega grafa
|
||||
skupen_graf_tex <- "\\begin{figure}[H]\\centerline{\\includegraphics[width=1\\textwidth]{slike/teamship_meter_all_teams.pdf}}\\end{figure}"
|
||||
|
||||
# Seznam kamor se bodo shranjevali preostali zapisi grafov v LaTeXu
|
||||
grafi_oddelkov_tex <- list()
|
||||
|
||||
##:::::::::::::::::::
|
||||
## Izdelava grafov
|
||||
##:::::::::::::::::::
|
||||
|
||||
for(i in 1:(length(oddelki$ime) + 1)) {
|
||||
# Prvi graf
|
||||
if(i==1)
|
||||
podatki <- sapply(data[grep("var", names(data), value = TRUE)], as.numeric)
|
||||
# Preostali grafi
|
||||
else if (nrow(oddelki) > 0) {
|
||||
vprasalnik <- subset(data, oddelki$ime[i - 1] == oddelek_ime)
|
||||
podatki <- sapply(vprasalnik[grep("var", names(vprasalnik), value = TRUE)], as.numeric)
|
||||
}
|
||||
|
||||
##::::::::::::::::::::::::::::::::::::::::::
|
||||
## Polje za zapiske pri preostalih grafih
|
||||
##::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
if (i > 1 & nrow(oddelki) > 0) {
|
||||
form <- c("\\ding{46}", "Notes:", "\\\\[0.1cm]",
|
||||
"\\begin{Form}
|
||||
\\noindent
|
||||
\\TextField[name=", oddelki$ime[i-1], ", multiline=true, width=\\linewidth, height=10cm, bordercolor=0 0 0]{}
|
||||
\\end{Form}")
|
||||
}
|
||||
# Prvo polje manjse, da gre na isto stran z naslovom
|
||||
if (i == 2){
|
||||
form <- c("\\ding{46}", "Notes:", "\\\\[0.1cm]",
|
||||
"\\begin{Form}
|
||||
\\noindent
|
||||
\\TextField[name=", oddelki$ime[i-1], ", multiline=true, width=\\linewidth, height=9cm, bordercolor=0 0 0]{}
|
||||
\\end{Form}")
|
||||
} else {
|
||||
form <- c("\\ding{46}", "Notes:", "\\\\[0.1cm]",
|
||||
"\\begin{Form}
|
||||
\\noindent
|
||||
\\TextField[name=", oddelki$ime[i-1], ", multiline=true, width=\\linewidth, height=10cm, bordercolor=0 0 0]{}
|
||||
\\end{Form}")
|
||||
}
|
||||
|
||||
##::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
## Pretvorba odgovorov na lestvico od 1-5 in izracun delezev vrednosti na lestvici od 1 do 5 ter dodajanje oznak, ki bodo na grafih
|
||||
##::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
sk1 <- "Vsak \u010Dlan tima da vse od sebe."
|
||||
sk2 <- "Vsak se poistoveti z vizijo."
|
||||
sk3 <- "Kriteriji uspeha so znani vsem."
|
||||
sk4 <- "Tim je organiziran okrog kriterijev uspeha."
|
||||
sk5 <- "Vsak se je v trenutku pripravljen spremeniti."
|
||||
sk6 <- "Tim lahko premaguje ovire."
|
||||
sk7 <- "Vsak ima strokovne spretnosti."
|
||||
sk8 <- "Vsak ima spretnosti odnosov."
|
||||
sk9 <- "Tim je 'mi tim'"
|
||||
sk10 <- "Vsi se ucijo in delijo."
|
||||
sk11 <- "Tim je 'celovit' tim."
|
||||
sk12 <- "Vodja tima je viden."
|
||||
sk13 <- "Vodja tima vsem pomaga dose\u010Di uspeh."
|
||||
sk14 <- "Vodja tima u\u017Eiva ugled."
|
||||
sk15 <- "Dobro delovanje je nagrajeno."
|
||||
|
||||
|
||||
df <-
|
||||
rbind(
|
||||
podatki %>%
|
||||
prep.dat(skupina_1) %>%
|
||||
labScore(sk1),
|
||||
podatki %>%
|
||||
prep.dat(skupina_2) %>%
|
||||
labScore(sk2),
|
||||
podatki %>%
|
||||
prep.dat(skupina_3) %>%
|
||||
labScore(sk3),
|
||||
podatki %>%
|
||||
prep.dat(skupina_4) %>%
|
||||
labScore(sk4),
|
||||
podatki %>%
|
||||
prep.dat(skupina_5) %>%
|
||||
labScore(sk5),
|
||||
podatki %>%
|
||||
prep.dat(skupina_6) %>%
|
||||
labScore(sk6),
|
||||
podatki %>%
|
||||
prep.dat(skupina_7) %>%
|
||||
labScore(sk7),
|
||||
podatki %>%
|
||||
prep.dat(skupina_8) %>%
|
||||
labScore(sk8),
|
||||
podatki %>%
|
||||
prep.dat(skupina_9) %>%
|
||||
labScore(sk9),
|
||||
podatki %>%
|
||||
prep.dat(skupina_10) %>%
|
||||
labScore(sk10),
|
||||
podatki %>%
|
||||
prep.dat(skupina_11) %>%
|
||||
labScore(sk11),
|
||||
podatki %>%
|
||||
prep.dat(skupina_12) %>%
|
||||
labScore(sk12),
|
||||
podatki %>%
|
||||
prep.dat(skupina_13) %>%
|
||||
labScore(sk13),
|
||||
podatki %>%
|
||||
prep.dat(skupina_14) %>%
|
||||
labScore(sk14),
|
||||
podatki %>%
|
||||
prep.dat(skupina_15) %>%
|
||||
labScore(sk15)
|
||||
)
|
||||
|
||||
##:::::::::::::::::::::::::::::::::::::::::::::
|
||||
## Shranjevanje podatkov za grafe dejavnikov
|
||||
##:::::::::::::::::::::::::::::::::::::::::::::
|
||||
if (i > 1){
|
||||
Izjava_o_p <- rbind(Izjava_o_p, factor_to_string(df, sk1, oddelki$ime[i-1]))
|
||||
Vizija <- rbind(Vizija, factor_to_string(df, sk2, oddelki$ime[i-1]))
|
||||
Organizacija <- rbind(Organizacija, factor_to_string(df, sk3, oddelki$ime[i-1]))
|
||||
Kultura <- rbind(Kultura, factor_to_string(df, sk4, oddelki$ime[i-1]))
|
||||
Sistem_v <- rbind(Sistem_v, factor_to_string(df, sk5, oddelki$ime[i-1]))
|
||||
Stil_v <- rbind(Stil_v, factor_to_string(df, sk6, oddelki$ime[i-1]))
|
||||
Kadrovske_p <- rbind(Kadrovske_p, factor_to_string(df, sk7, oddelki$ime[i-1]))
|
||||
Zaposlitvena_p <- rbind(Zaposlitvena_p, factor_to_string(df, sk8, oddelki$ime[i-1]))
|
||||
Nagrade_in_p <- rbind(Nagrade_in_p, factor_to_string(df, sk9, oddelki$ime[i-1]))
|
||||
Napredovanje <- rbind(Napredovanje, factor_to_string(df, sk10, oddelki$ime[i-1]))
|
||||
Notranja_k <- rbind(Notranja_k, factor_to_string(df, sk11, oddelki$ime[i-1]))
|
||||
Informacijski_s <- rbind(Informacijski_s, factor_to_string(df, sk12, oddelki$ime[i-1]))
|
||||
Politika_k <- rbind(Politika_k, factor_to_string(df, sk13, oddelki$ime[i-1]))
|
||||
Uceca_se_o <- rbind(Uceca_se_o, factor_to_string(df, sk14, oddelki$ime[i-1]))
|
||||
dobro_del <- rbind(Uceca_se_o, factor_to_string(df, sk15, oddelki$ime[i-1]))
|
||||
}
|
||||
|
||||
##:::::::::::::::::::::::::::::::
|
||||
## Priprava podatkov za ggplot
|
||||
##:::::::::::::::::::::::::::::::
|
||||
|
||||
# Spremenljivka label v faktor razporedi po spremenljivki name
|
||||
df$label = factor(
|
||||
df$label,
|
||||
levels = c(
|
||||
"Nesprejemljivo",
|
||||
"Nezadostno",
|
||||
"Povpre\u010Dno",
|
||||
"Dobro",
|
||||
"Odli\u010Dno"
|
||||
)
|
||||
)
|
||||
df <- arrange(df, name, desc(label))
|
||||
|
||||
# Izracun pozicije
|
||||
df = ddply(df, .(name), transform, pozicija = (cumsum(Percentage) - 0.5 * Percentage))
|
||||
df$delez = paste0(sprintf("%.0f", df$Percentage), "%")
|
||||
|
||||
# Razporeditev imen na osi
|
||||
df$name <- factor(
|
||||
df$name,
|
||||
levels = c(
|
||||
sk15,
|
||||
sk14,
|
||||
sk13,
|
||||
sk12,
|
||||
sk11,
|
||||
sk10,
|
||||
sk9,
|
||||
sk8,
|
||||
sk7,
|
||||
sk6,
|
||||
sk5,
|
||||
sk4,
|
||||
sk3,
|
||||
sk2,
|
||||
sk1
|
||||
)
|
||||
)
|
||||
df <- df[order(df$name), ]
|
||||
|
||||
##::::::::::::::::::
|
||||
## Izdelava grafa
|
||||
##::::::::::::::::::
|
||||
|
||||
# Kreiraj pdf v katerem bo graf
|
||||
# Prvi graf
|
||||
if(i==1){
|
||||
cairo_pdf(
|
||||
"modules/mod_EVOLI/results/slike/teamship_meter_all_teams.pdf",
|
||||
pointsize = 12,
|
||||
width = 9,
|
||||
height = 6.5
|
||||
)
|
||||
}
|
||||
# Preostali grafi
|
||||
else if (nrow(oddelki) > 0){
|
||||
cairo_pdf(
|
||||
paste(
|
||||
"modules/mod_EVOLI/results/slike/teamship_meter_",
|
||||
replace.characters(oddelki$ime[i-1]),
|
||||
'.pdf',
|
||||
sep = ""
|
||||
),
|
||||
pointsize = 15,
|
||||
width = 9,
|
||||
height = 6.5
|
||||
)
|
||||
}
|
||||
|
||||
# Opredeli graf
|
||||
graf <- ggplot(df, aes(factor(name)))
|
||||
|
||||
# Vertikalne sive crte prikazane za grafom
|
||||
for (crta in seq(0, 100, 10))
|
||||
graf <- graf + geom_hline(yintercept = crta, col = "gray", alpha = 0.5, size = 0.7)
|
||||
|
||||
# Naslov grafa
|
||||
naslov <- ggtitle("")
|
||||
if(i > 1 & nrow(oddelki) > 0)
|
||||
naslov <- ggtitle(oddelki$ime[i-1])
|
||||
|
||||
# Dolocitev polozaja prikaza delezev v grafu
|
||||
graf <- graf + geom_col(aes(y = Percentage, fill = label),
|
||||
position = position_stack(reverse = TRUE),
|
||||
width = .5) +
|
||||
|
||||
# Vertikalne rdece crte
|
||||
geom_hline(yintercept = 20, colour = "#AA0000", alpha = 1, size = 0.8) +
|
||||
geom_hline(yintercept = 50, colour = "#AA0000", alpha = 1, size = 0.8) +
|
||||
|
||||
# Izris delezev
|
||||
geom_text(aes(y = 100 - pozicija, label = delez), size = 4) +
|
||||
|
||||
# Preostanek grafa
|
||||
coord_flip() +
|
||||
scale_y_continuous(
|
||||
position = "right",
|
||||
expand = c(0, 0),
|
||||
breaks = seq(min(0), max(0, 102), by = 10),
|
||||
limits = c(0, 102),
|
||||
labels = dollar_format(suffix = "%", prefix = "")
|
||||
) +
|
||||
scale_fill_manual(
|
||||
values = c("#ff0000", "#ffff00", "#b2b2b2", "#1baf05", "#007FFF"),
|
||||
drop = FALSE
|
||||
) +
|
||||
xlab("") +
|
||||
ylab("") +
|
||||
|
||||
# Specifikacija teme
|
||||
theme_bw() +
|
||||
theme(
|
||||
axis.line = element_blank(),
|
||||
panel.grid.major = element_blank(),
|
||||
panel.grid.minor = element_blank(),
|
||||
panel.border = element_blank(),
|
||||
panel.background = element_blank(),
|
||||
legend.position = "bottom",
|
||||
legend.title = element_blank(),
|
||||
legend.key.size = unit(0.7, "line"),
|
||||
legend.text = element_text(size = 12),
|
||||
|
||||
# Velikost barva in stil besedila na oseh
|
||||
axis.text.x = element_text(
|
||||
colour = "black",
|
||||
size = 11,
|
||||
face = "plain"
|
||||
),
|
||||
axis.text.y = element_text(
|
||||
colour = "black",
|
||||
size = 11,
|
||||
face = "plain"
|
||||
),
|
||||
plot.margin = unit(c(1, 1, 1, 1), units = "line"),
|
||||
plot.background = element_rect(
|
||||
colour = 'gray',
|
||||
fill = 'NA',
|
||||
size = 0.5
|
||||
),
|
||||
axis.ticks=element_blank(),
|
||||
plot.title = element_text(hjust = 0.4, size = 15, face = "bold")
|
||||
) +
|
||||
naslov
|
||||
|
||||
# Shranjevanje grafa
|
||||
print(graf)
|
||||
dev.off()
|
||||
|
||||
# Ime grafa o specificnem oddelku in obrazec
|
||||
if(i > 1 & nrow(oddelki) > 0){
|
||||
grafi_oddelkov_tex[[oddelki$ime[i-1]]] <- c(
|
||||
paste0(
|
||||
"\\begin{figure}[H]",
|
||||
"\\centerline{\\includegraphics[width=1\\textwidth]{slike/teamship_meter_",
|
||||
replace.characters(oddelki$ime[i-1]),
|
||||
".pdf}}" ,
|
||||
"\\end{figure}"
|
||||
),
|
||||
form
|
||||
)
|
||||
}
|
||||
|
||||
# Ce ni zapisov o oddelkih
|
||||
if(nrow(oddelki)==0){
|
||||
grafi_oddelkov_tex[[oddelki$ime[i-1]]] <- NULL
|
||||
fillableForm_Serv <- NULL
|
||||
}
|
||||
}
|
||||
|
||||
##::::::::::::::::::::::::::::::::
|
||||
## Izdelava grafov za dejavnike
|
||||
##::::::::::::::::::::::::::::::::
|
||||
|
||||
# Seznam kamor se bodo shranjevali preostali zapisi grafov v LaTeXu
|
||||
grafi_dejavnikov_tex <- list()
|
||||
|
||||
# Dejavniki
|
||||
dejavniki <- c(
|
||||
sk1,
|
||||
sk2,
|
||||
sk3,
|
||||
sk4,
|
||||
sk5,
|
||||
sk6,
|
||||
sk7,
|
||||
sk8,
|
||||
sk9,
|
||||
sk10,
|
||||
sk11,
|
||||
sk12,
|
||||
sk13,
|
||||
sk14,
|
||||
sk15
|
||||
)
|
||||
|
||||
for(i in 1:(length(dejavniki))){
|
||||
|
||||
##::::::::::::::::::::
|
||||
## Polje za zapiske
|
||||
##::::::::::::::::::::
|
||||
# Prvo polje manjse, da gre na isto stran z naslovom
|
||||
if (i == 1){
|
||||
form <- c("\\ding{46}", "Notes:", "\\\\[0.1cm]",
|
||||
"\\begin{Form}
|
||||
\\noindent
|
||||
\\TextField[name=", dejavniki[i], ", multiline=true, width=\\linewidth, height=9cm, bordercolor=0 0 0]{}
|
||||
\\end{Form}")
|
||||
} else {
|
||||
form <- c("\\ding{46}", "Notes:", "\\\\[0.1cm]",
|
||||
"\\begin{Form}
|
||||
\\noindent
|
||||
\\TextField[name=", dejavniki[i], ", multiline=true, width=\\linewidth, height=10cm, bordercolor=0 0 0]{}
|
||||
\\end{Form}")
|
||||
}
|
||||
|
||||
##::::::::::::::::::
|
||||
## Izberi podatke
|
||||
##::::::::::::::::::
|
||||
|
||||
if(dejavniki[i] == sk1) {
|
||||
df <- Izjava_o_p
|
||||
} else if (dejavniki[i] == sk2) {
|
||||
df <- Vizija
|
||||
} else if (dejavniki[i] == sk3) {
|
||||
df <- Organizacija
|
||||
} else if (dejavniki[i] == sk4) {
|
||||
df <- Kultura
|
||||
} else if (dejavniki[i] == sk5) {
|
||||
df <- Sistem_v
|
||||
} else if (dejavniki[i] == sk6) {
|
||||
df <- Kadrovske_p
|
||||
} else if (dejavniki[i] == sk7) {
|
||||
df <- Sistem_v
|
||||
} else if (dejavniki[i] == sk8) {
|
||||
df <- Zaposlitvena_p
|
||||
} else if (dejavniki[i] == sk9) {
|
||||
df <- Nagrade_in_p
|
||||
} else if (dejavniki[i] == sk10) {
|
||||
df <- Napredovanje
|
||||
} else if (dejavniki[i] == sk11) {
|
||||
df <- Notranja_k
|
||||
} else if (dejavniki[i] == sk12) {
|
||||
df <- Informacijski_s
|
||||
} else if (dejavniki[i] == sk13) {
|
||||
df <- Politika_k
|
||||
} else if (dejavniki[i] == sk14) {
|
||||
df <- Uceca_se_o
|
||||
} else if (dejavniki[i] == sk15) {
|
||||
df <- dobro_del
|
||||
}
|
||||
|
||||
##:::::::::::::::::::::::::::::::
|
||||
## Priprava podatkov za ggplot
|
||||
##:::::::::::::::::::::::::::::::
|
||||
|
||||
# Spremenljivka label v faktor razporedi po spremenljivki name
|
||||
df$label = factor(
|
||||
df$label,
|
||||
levels = c(
|
||||
"Nesprejemljivo",
|
||||
"Nezadostno",
|
||||
"Povpre\u010Dno",
|
||||
"Dobro",
|
||||
"Odli\u010Dno"
|
||||
)
|
||||
)
|
||||
df <- arrange(df, name, desc(label))
|
||||
|
||||
# Izracun pozicije
|
||||
df = ddply(df, .(name), transform, pozicija = (cumsum(Percentage) - 0.5 * Percentage))
|
||||
df$delez = paste0(sprintf("%.0f", df$Percentage), "%")
|
||||
|
||||
# Razporeditev imen na osi
|
||||
df$name <- factor(df$name, levels = rev(oddelki$ime))
|
||||
df <- df[order(df$name),]
|
||||
|
||||
##::::::::::::::::::
|
||||
## Izdelava grafa
|
||||
##::::::::::::::::::
|
||||
|
||||
# Kreiraj pdf v katerem bo graf
|
||||
cairo_pdf(
|
||||
paste(
|
||||
"modules/mod_EVOLI/results/slike/teamship_meter_",
|
||||
replace.characters(dejavniki[i]),
|
||||
'.pdf',
|
||||
sep = ""
|
||||
),
|
||||
pointsize = 15,
|
||||
width = 9,
|
||||
height = 6.5
|
||||
)
|
||||
|
||||
|
||||
# Opredeli graf
|
||||
graf <- ggplot(df, aes(factor(name)))
|
||||
|
||||
# Vertikalne sive crte prikazane za grafom
|
||||
for (crta in seq(0, 100, 10))
|
||||
graf <- graf + geom_hline(yintercept = crta, col = "gray", alpha = 0.5, size = 0.7)
|
||||
|
||||
# Naslov grafa
|
||||
naslov <- ggtitle("")
|
||||
naslov <- ggtitle(dejavniki[i])
|
||||
|
||||
# Dolocitev polozaja prikaza delezev v grafu
|
||||
graf <- graf + geom_col(aes(y = Percentage, fill = label),
|
||||
position = position_stack(reverse = TRUE),
|
||||
width = .5) +
|
||||
|
||||
# Vertikalne rdece crte
|
||||
geom_hline(yintercept = 20, colour = "#AA0000", alpha = 1, size = 0.8) +
|
||||
geom_hline(yintercept = 50, colour = "#AA0000", alpha = 1, size = 0.8) +
|
||||
|
||||
# Izris delezev
|
||||
geom_text(aes(y = 100 - pozicija, label = delez), size = 4) +
|
||||
|
||||
# Preostanek grafa
|
||||
coord_flip() +
|
||||
scale_y_continuous(
|
||||
position = "right",
|
||||
expand = c(0, 0),
|
||||
breaks = seq(min(0), max(0, 102), by = 10),
|
||||
limits = c(0, 102),
|
||||
labels = dollar_format(suffix = "%", prefix = "")
|
||||
) +
|
||||
scale_fill_manual(
|
||||
values = c("#ff0000", "#ffff00", "#b2b2b2", "#1baf05", "#007FFF"),
|
||||
drop = FALSE
|
||||
) +
|
||||
xlab("") +
|
||||
ylab("") +
|
||||
|
||||
# Specifikacija teme
|
||||
theme_bw() +
|
||||
theme(
|
||||
axis.line = element_blank(),
|
||||
panel.grid.major = element_blank(),
|
||||
panel.grid.minor = element_blank(),
|
||||
panel.border = element_blank(),
|
||||
panel.background = element_blank(),
|
||||
legend.position = "bottom",
|
||||
legend.title = element_blank(),
|
||||
legend.key.size = unit(0.7, "line"),
|
||||
legend.text = element_text(size = 12),
|
||||
|
||||
# Velikost barva in stil besedila na oseh
|
||||
axis.text.x = element_text(
|
||||
colour = "black",
|
||||
size = 11,
|
||||
face = "plain"
|
||||
),
|
||||
axis.text.y = element_text(
|
||||
colour = "black",
|
||||
size = 11,
|
||||
face = "plain"
|
||||
),
|
||||
plot.margin = unit(c(1, 1, 1, 1), units = "line"),
|
||||
plot.background = element_rect(
|
||||
colour = 'gray',
|
||||
fill = 'NA',
|
||||
size = 0.5
|
||||
),
|
||||
axis.ticks=element_blank(),
|
||||
plot.title = element_text(hjust = 0.4, size = 15, face = "bold")
|
||||
) +
|
||||
naslov
|
||||
|
||||
# Shranjevanje grafa
|
||||
print(graf)
|
||||
dev.off()
|
||||
|
||||
# Ime grafa o specificnem oddelku in obrazec
|
||||
grafi_dejavnikov_tex[[dejavniki[i]]] <- c(
|
||||
paste0(
|
||||
"\\begin{figure}[H]",
|
||||
"\\centerline{\\includegraphics[width=1\\textwidth]{slike/teamship_meter_",
|
||||
replace.characters(dejavniki[i]),
|
||||
".pdf}}" ,
|
||||
"\\end{figure}"
|
||||
),
|
||||
form
|
||||
)
|
||||
}
|
||||
|
||||
##::::::::::::::::::::::::::::::
|
||||
## Informacije o organizaciji
|
||||
##::::::::::::::::::::::::::::::
|
||||
|
||||
# Ime organizacije
|
||||
organisation <- ifelse(
|
||||
all(unique(data$organizaci) %in% neveljavno),
|
||||
"ime podjetja",
|
||||
unique(data$organizaci)
|
||||
)
|
||||
# Datum na prvi strani
|
||||
date <- ifelse(
|
||||
all(unique(data$itime) %in% neveljavno),
|
||||
"",
|
||||
unique(data$itime)
|
||||
)
|
||||
# Ce ni imena izpise samo Spostovani
|
||||
customer <-
|
||||
ifelse(
|
||||
all(unique(data$ime) %in% neveljavno),
|
||||
"Spo\u0161tovani!",
|
||||
paste0("Spo\u0161tovani ", data$ime, "!")
|
||||
)
|
||||
|
||||
##::::::::::::::::::::::
|
||||
## Generiranje PDF-ja
|
||||
##::::::::::::::::::::::
|
||||
|
||||
# Opredelitev delov za koncni dokument
|
||||
# Definiranje dokumenta
|
||||
glava_tex <-
|
||||
scan(
|
||||
"modules/mod_EVOLI/latexkosi/glava-teamship_meter_slo.tex",
|
||||
character(0),
|
||||
sep = "\n",
|
||||
quiet = TRUE,
|
||||
encoding = 'UTF-8'
|
||||
)
|
||||
# Drugi del
|
||||
drugi_del_tex <-
|
||||
scan(
|
||||
"modules/mod_EVOLI/latexkosi/drugi_del-teamship_meter_slo.tex",
|
||||
character(0),
|
||||
sep = "\n",
|
||||
quiet = TRUE,
|
||||
encoding = 'UTF-8'
|
||||
)
|
||||
# Zamenjava organizacije v glavi
|
||||
glava_tex <-
|
||||
gsub(
|
||||
'!organisation!',
|
||||
Hmisc::latexTranslate(organisation),
|
||||
glava_tex,
|
||||
fixed = TRUE
|
||||
)
|
||||
# Datum
|
||||
glava_tex <-
|
||||
gsub(
|
||||
'!date!',
|
||||
Hmisc::latexTranslate(date),
|
||||
glava_tex,
|
||||
fixed = TRUE
|
||||
)
|
||||
# Ime podjetja
|
||||
glava_tex <-
|
||||
gsub(
|
||||
'!company name!',
|
||||
Hmisc::latexTranslate(organisation),
|
||||
glava_tex,
|
||||
fixed = TRUE
|
||||
)
|
||||
# Ime stranke
|
||||
glava_tex <-
|
||||
gsub(
|
||||
'!name!',
|
||||
Hmisc::latexTranslate(customer),
|
||||
glava_tex,
|
||||
fixed = TRUE
|
||||
)
|
||||
|
||||
# Get working directory
|
||||
Rdirektorij <- getwd()
|
||||
|
||||
# Zdruzevanje posameznih delov
|
||||
skupaj_tex <- c(
|
||||
glava_tex,
|
||||
skupen_graf_tex,
|
||||
"\\vspace*{30px}",
|
||||
"\\begin{center}",
|
||||
"\\textbf{",
|
||||
Hmisc::latexTranslate(organisation),
|
||||
"\\textbf{}}",
|
||||
"\\end{center}",
|
||||
tabela_tex,
|
||||
"\\chapter{\\Large \\textbf {Teamship meter}}",
|
||||
"\\begin{center}",
|
||||
"\\textbf{Rezultati timov}",
|
||||
"\\end{center}",
|
||||
grafi_oddelkov_tex,
|
||||
"\\chapter{\\Large \\textbf {Dejavniki Teamship metra}}",
|
||||
"\\begin{center}",
|
||||
"\\textbf{Rezultati tima za vsakega od 15 dejavnikov Teamshipa}",
|
||||
"\\end{center}",
|
||||
grafi_dejavnikov_tex,
|
||||
drugi_del_tex,
|
||||
"\\end{document}"
|
||||
)
|
||||
|
||||
# Kam bomo shranili
|
||||
setwd(paste(Rdirektorij, "modules/mod_EVOLI/results", sep = "/"))
|
||||
|
||||
# Shrani LaTeX
|
||||
cat(unlist(skupaj_tex),
|
||||
file = paste0("Teamship-Meter-slo.tex"),
|
||||
sep = "\n")
|
||||
|
||||
# Shrani PDF
|
||||
tools::texi2pdf(
|
||||
file = paste0("Teamship-Meter-slo.tex"),
|
||||
quiet = TRUE,
|
||||
clean = TRUE
|
||||
)
|
||||
|
||||
# Ponastavi delovno mapo
|
||||
setwd(Rdirektorij)
|
Loading…
x
Reference in New Issue
Block a user