############################## # 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()