145 lines
6.2 KiB
R
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()
|
|
|