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

145 lines
6.2 KiB
R

##############################
# Vprašalnik Ljubljanske borze
##############################
library(fmsb) # required libraries (radar chart)
library(Cairo) # required libraries export image
#------------------------------ READ DATA ----------------------------#
# Import data
data <- read.csv2("modules/mod_BORZA/temp/borza.csv",sep=";",
header=T, fill=T, stringsAsFactors=FALSE, encoding = 'UTF-8')
# Select all from second row
if (data[1, 1] == ("Ustreznost") | data[1, 1] == ("Relevance")) {
data <- data[2:nrow(data), ]
}
#--------------------------- // READ DATA // ------------------------#
#---------------------- CATEGORIES FOR RADAR CHART ------------------#
# V need to select 13 differenc categories categories which will be
# presented in radar chart.
# This chategories are A (Podoba/blagovna znamka), B (Vodstvo podjetja)
# etc. .... (see file named "Vprašalnik.xls" in folder)
# We renamed name of variables from "Q" to "bor" because of convenience in adding new variables in 1KA survey.
## SELECT CATEGORIES AND CALCULATE MEAN FOR EACH
# Podoba/blagovna znamka
q15 <- data[ , grepl("bor15", colnames(data))]
# Vodstvo podjetja
q17 <- data[ , grepl("bor17", colnames(data))]
# Zaposleni
q18 <- data[ , grepl("bor18", colnames(data))]
# Spremenljivka "Zaposleni so zelo obremenjeni z dnevnimi opravili"
# ima obratne vrednosti, torej 10 pomeni 1
q18[,4] <- abs(as.numeric(q18[,c(4)]) - 11)
# Orgnaizacijska struktura in projektno vodenje
q20 <- data[ , grepl("bor20", colnames(data))]
# Osnovna sredstva in tehnologija
q21 <- data[ , grepl("bor21", colnames(data))]
# Proizvodi in storitve
q23 <- data[ , grepl("bor23", colnames(data))]
# Reverse order of vairable on scale form 1 - 10
q23[,6] <- abs(as.numeric(q23[,c(6)]) - 11)
# Kupci
q25 <- data[ , grepl("bor25", colnames(data))]
# Reverse order of vairable on scale form 1 - 10
q25[,1] <- abs(as.numeric(q25[,c(1)]) - 11)
q25[,6] <- abs(as.numeric(q25[,c(6)]) - 11)
# Dobavitelji
q26 <- data[ , grepl("bor26[bcdefg]", colnames(data))]
# Prodajni kanali, trženjsko komuniciranje in stiki z javnostmi
q27 <- data[ , grepl("bor27[abcefgh]", colnames(data))]
q27[,2] <- abs(as.numeric(q27[,c(2)]) - 11)
# Konkurenčnost
q28 <- data[ , grepl("bor28", colnames(data))]
q28[,1] <- abs(as.numeric(q28[,c(1)]) - 11)
q28[,2] <- abs(as.numeric(q28[,c(2)]) - 11)
q28[,6] <- abs(as.numeric(q28[,c(6)]) - 11)
q28[,7] <- abs(as.numeric(q28[,c(7)]) - 11)
q28[,9] <- abs(as.numeric(q28[,c(9)]) - 11)
q28[,10] <- abs(as.numeric(q28[,c(10)]) - 11)
# Preteklo poslovanje
q29 <- data[ , grepl("bor29[abcde]", colnames(data))]
q29[,3] <- abs(as.numeric(q29[,c(3)]) - 11)
# Poslovni model in strategija
q30 <- data[ , grepl("bor30", colnames(data))]
# Financiranje
q31 <- data[ , grepl("bor31", colnames(data))]
q31[,3] <- abs(as.numeric(q31[,c(3)]) - 11)
q31[,7] <- abs(as.numeric(q31[,c(7)]) - 11)
q31[,13] <- abs(as.numeric(q31[,c(13)]) - 11)
#------------------- //CATEGORIES FOR RADAR CHART// -----------------#
#---------------------------- CLEAN DATA ----------------------------#
# LABEL all columns that contain missing value ("-1") od (12). The
# latter value occured due to recoding procedure abs(-1-11) = 12
cols_to_drop = function (df) {
columns_to_drop <- df != "-1" & df != 12
df <- df[,columns_to_drop]
return(df)
}
# Delete all missing values and calculate mean for graph
q15 <- format(round(mean(as.numeric(cols_to_drop(q15))), 2), nsmall = 2)
q17 <- format(round(mean(as.numeric(cols_to_drop(q17))), 2), nsmall = 2)
q18 <- format(round(mean(as.numeric(cols_to_drop(q18))), 2), nsmall = 2)
q20 <- format(round(mean(as.numeric(cols_to_drop(q20))), 2), nsmall = 2)
q21 <- format(round(mean(as.numeric(cols_to_drop(q21))), 2), nsmall = 2)
q23 <- format(round(mean(as.numeric(cols_to_drop(q23))), 2), nsmall = 2)
q25 <- format(round(mean(as.numeric(cols_to_drop(q25))), 2), nsmall = 2)
q26 <- format(round(mean(as.numeric(cols_to_drop(q26))), 2), nsmall = 2)
q27 <- format(round(mean(as.numeric(cols_to_drop(q27))), 2), nsmall = 2)
q28 <- format(round(mean(as.numeric(cols_to_drop(q28))), 2), nsmall = 2)
q29 <- format(round(mean(as.numeric(cols_to_drop(q29))), 2), nsmall = 2)
q30 <- format(round(mean(as.numeric(cols_to_drop(q30))), 2), nsmall = 2)
q31 <- format(round(mean(as.numeric(cols_to_drop(q31))), 2), nsmall = 2)
#------------------------ // CLEAN DATA // --------------------------#
CairoPNG('modules/mod_BORZA/results/radar.png', width = 900, height = 700) # Export chart to png
#-------------------------- RADAR CHART -----------------------------#
# Combine values (calculated means)
mydat <- c(q15, q17, q18, q20, q21, q23, q25,
q26, q27, q28, q29, q30, q31)
mydat1 <- as.numeric(mydat)
# Create rang which will be labeld in grapf (10 likert scale)
myrange <- c(1, 10)
# create a data frame with the max and min as the first two rows
mydf <- data.frame(rbind(max=myrange[2], min=myrange[1], mydat1))
# Add names which will be displayed as labels in chart and also their means in parentheses
colnames(mydf) <- c(paste0("Podoba/Blagovna znamka"," (",mydat[1],")"), paste0("Vodstvo podjetja"," (",mydat[2],")"),
paste0("Zaposleni"," (",mydat[3],")"),
paste0("Organizacijska struktura\nin projektno vodenje"," (",mydat[4],")"),
paste0("Osnovna sredstva\nin tehnologija"," (",mydat[5],")"),
paste0("Proizvodi in storitve"," (",mydat[6],")"),
paste0("Kupci"," (",mydat[7],")"), paste0("Dobavitelji"," (",mydat[8],")"),
paste0("Prodajni kanali, tr\u017Eenjsko komuniciranje\nin stiki z javnostjo", " (",mydat[9],")"),
paste0("Konkuren\u010Dnost", " (",mydat[10],")"),
paste0("Preteklo poslovanje"," (",mydat[11],")"),
paste0("Poslovni model\nin strategija"," (",mydat[12],")"),
paste0("Financiranje"," (",mydat[12],")"))
# Plot a radar chart
radarchart(mydf, pcol = c('dodgerblue3'), cglcol = 'gray75', na.itp = FALSE, plwd = 3, plty = 1,
cglwd = 1, cglty = 1, seg = 9, axistype = 1, caxislabels = c(1:10), axislabcol = 'gray25',
centerzero = TRUE, title = data$podjetje)
#------------------------ //RADAR CHART//----------------------------#
dev.off()