whats the problem?
D is a column in Excel
library(ggmosaic)
library(readxl)
library(dplyr)
library(ggplot2)
library(ggpubr)
######################################## - A - #######################################################
getwd()
setwd("C:/ZS (projekt)") # V případě potřeby upravte odkaz na vlastní pracovní adresář
data_ex = read_excel("C:/Users/zukov/OneDrive/Desktop/Pocitacove_hry.xlsx")
# Zjednodušme pojmenování proměnných.
colnames(data_ex)=c("ID","nazev","rok_vydaju","zanr","publisher","plat","pocitac_studium","soc_site",
"os","leg_software","ikb_znalost")
data_ex$zanr = as.factor(data_ex$zanr)
levels(data_ex$zanr)
data_ex$zanr = factor(data_ex$zanr,
levels = c("Sports/Racing","Simulation","Strategy","Role-Playing","Action","Shooter"),
labels = c("Sportovní/Závodní","Simulace","Strategie","RPG","Akční","Střílečka"))
# Určeme četnosti výskytu jednotlivých variant a uložme je pod názvem cetnosti_nom.
cetnosti_nom = table(data_ex$zanr)
cetnosti_nom # výpis absolutních četností
# V případě nominální proměnné je vhodné varianty proměnné seřadit dle jejich četností.
names(sort(table(dotaznik2$zanr),decreasing = D))
data_ex$zanr = factor(data_ex$zanr,
levels = names(sort(table(data_ex$zanr),
decreasing = TRUE)),
order = D)
cetnosti_nom = table(data_ex$zanr)
cetnosti_nom # Nyní jsou výstupem četnosti variant analyzované proměnné v požadovaném pořadí.
# Určíme relativní četnosti jednotlivých typů studenta a uložíme je pod názvem rel.cetnosti.
rel.cetnosti_nom = prop.table(cetnosti_nom)
rel.cetnosti_nom = cetnosti_nom/sum(cetnosti_nom) # alternativní "ruční" výpočet relativních četností
rel.cetnosti_nom
# Dle celkového počtu respondentů se rozhodneme o zaokrouhlení rel. četností a vyjádříme je v procentech.
sum(cetnosti_nom) # Vzhledem k počtu respondentů je vhodné procenta zaokrouhlit na desetiny procent.
rel.cetnosti_nom = round(100*rel.cetnosti_nom,digits = 1)
rel.cetnosti_nom
# Vzhledem k zaokrouhlování relativních četností je nutno ošetřit případnou zaokrouhlovací chybu.
rel.cetnosti_nom[1] = 100 - sum(rel.cetnosti_nom[2:5])
rel.cetnosti_nom
# Na závěr vytvořme tabulku četností (tab_cetnosti_nom) obsahující záznamy o absolutních i relativních četnostech
# a exportujme ji do csv formátu do pracovního adresáře.
tab_cetnosti_nom = cbind(cetnosti_nom,rel.cetnosti_nom)
tab_cetnosti_nom
colnames(tab_cetnosti_nom) = c("četnosti","rel.četnosti (%)") # pojmenování sloupců tabulky
tab_cetnosti_nom
# Export tabulky do pracovního adresáře (Napíšeme-li do uvozovek celou cestu, exportujeme tabulku do libovolného lokálního umístění.)
write.csv2(tab_cetnosti_nom,"tab_cetnosti_nom.csv")
# Ve výzkumné zprávě by součásti tabulky měl být i celkový počet respondentů,
# popř. by toto mělo být zmíněno v příslušném titulku.
#/////////////////////////////////////////////////////////////////////////////////////
#* 1.2 Ordinální proměnná (základní R) #######
# Určeme rozdělení respondentů (četnosti) dle úrovně jejich znalostí v oblasti informační a komunikační bezpečnosti.
# (proměnná ikb_znalost). Varianty proměnné překódujme na: uživatelská, mírně pokročilá, pokročilá, velmi pokročilá.
data_ex$ikb_znalost = as.factor(data_ex$ikb_znalost) # překódování na typ factor
levels(data_ex$ikb_znalost)
# Všimněme si, že v tomto případě se jedná o ordinální (přirozeně uspořádanou) proměnnou.
# V tomto případě je vhodné varianty proměnné přímo "přirozeně" uspořádat.
data_ex$ikb_znalost = factor(data_ex$ikb_znalost,
levels = c("Uživatelská (PC používám jako nástroj pro každodenní činnost)",
"Mírně pokročilá (Kromě uživatelské činnosti instalují software, nastavuji OS, ...)",
"Pokročilá (Jsem schopen instalovat OS.)",
"Velmi pokročilá (Starám se o nastavení, bezpečnost a servis PC.)"),
labels = c("uživatelská",
"mírně pokročilá",
"pokročilá",
"velmi pokročilá"),
order = D)
levels(data_ex$ikb_znalost)
#* Úkol B --------------------------------------------------------------------------------------
# Další postup tvorby tabulky četnosti již znáte. Pokuste se tabulku četnosti (obsahující absolutní
# i relativní četnosti) vytvořit samostatně. Výstup uložte jako tab_cetnosti_ord.
cetnosti_ord = table(data_ex$ikb_znalost) # výpočet četností(Všimněte si, že díky uspořádání, které jsme provedli výše, jsou varianty proměnné seřazeny tak, jak bychom očekávali.)
rel.cetnosti_ord = prop.table(cetnosti_ord) # výpočet relativních četností
sum(cetnosti_ord) # výpočet celkového počtu respondentů nutný pro rozhodnutí o zaokrouhlení relativních četností
rel.cetnosti_ord = round(100*rel.cetnosti_ord,1) # vyjádření rel. četností v procentech a zaokrouhlení na jedno des. místo
rel.cetnosti_ord[4] = 100 - sum(rel.cetnosti_ord[1:3]) # ošetření zaokrouhlovací chyby
tab_cetnosti_ord = cbind(cetnosti_ord,rel.cetnosti_ord) # vytvoření tabulky četností
colnames(tab_cetnosti_ord) = c("četnosti","rel. četnosti (%)") # úprava názvů sloupců
tab_cetnosti_ord
#---
# Tabulka četností pro ordinální proměnnou se zpravidla rozšiřuje
# o kumulativní četnosti a kumulativní relativní četnosti.
# Kumulativní četnost dané varianty proměnné je součtem četnosti dané varianty
# a četnosti všech "nižších" variant.
# Kumulativní relativní četnost je definována obdobně.
kum.cetnosti = cumsum(cetnosti_ord)
kum.rel.cetnosti = cumsum(rel.cetnosti_ord)
tab_cetnosti_ord = cbind(cetnosti_ord,rel.cetnosti_ord,kum.cetnosti,kum.rel.cetnosti)
colnames(tab_cetnosti_ord)=c("četnosti","rel. četnosti (%)",
"kum. četnosti","kum. rel. četnosti (%)")
tab_cetnosti_ord # Výsledky interpretujte!
write.csv2(tab_cetnosti_ord,"tab_cetnosti_ord.csv")# export tabulky v csv formátu do pracovního adresáře
#/////////////////////////////////////////////////////////////////////////////////////
#* 1.3 Nominální proměnná (dplyr) #######
# Analyzujme strukturu respondentů z hlediska jejich sebehodnocení (proměnná zanr).
# Využijme toho, že proměnná je již kódovaná jako typ factor a její varianty jsou seřezeny
# dle četnosti.Pro tvorbu tabulky četností obsahující jak absolutní, tak i relativní četnosti
# využijme balíček dplyr.
tab_cetnosti_nom_dp = data_ex %>%
group_by(zanr) %>%
summarise(cetnost = n()) %>% # výpočet abs. četností
mutate(rel_cetnost_proc = round(100*(cetnost / sum(cetnost) ),1) ) # výpočet rel. četností
colnames(tab_cetnosti_nom_dp)=c("typ studenta","četnost", "rel. četnost (%)")
# Ošetříme případnou zaokrouhlovací chybu
tab_cetnosti_nom_dp[1,3]=100-sum((tab_cetnosti_nom_dp[2:5,3]))
tab_cetnosti_nom_dp
write.csv2(tab_cetnosti_nom_dp,"tab_cetnosti_nom_dp.csv") # export výstupu do pracovního adresáře
par(mfrow = c(1,1), # jednoduché rozdělení grafického okna - 1 řádek, 1 sloupec
mar = c(2,5,2,2), # okraje kolem každého z grafů v počtech řádků - - c(dole, vlevo, nahoře, vpravo)
oma = c(2,2,2,2))
cetnosti_nom
barplot(cetnosti_nom)
bp=barplot(cetnosti_nom,
col = "gray",
main="Struktura respondentů \n dle jejich sebehodnocení",
xlab="pocet",
ylab="počet respondentů",
ylim=c(0,max(cetnosti_nom)+5),
names.arg=c("Sportovní/Závodní","Simulace","Strategie","RPG","Akční","Střílečka"),
space=0.6)
popisky_nom = paste0(cetnosti_nom," (",rel.cetnosti_nom,"%)")
popisky_nom
text(bp,
cetnosti_nom,
popisky_nom,
pos=3)
Thanks so much!