06. Explorace dat Harmonogram ▫01. Rekapitulace ▫02. Kategorická data ▫03. Numerická data Rekapitulace readr Obsah obrázku snímek obrazovky Popis vygenerován s velmi vysokou mírou spolehlivosti Rekapitulace data.table Obsah obrázku snímek obrazovky Popis vygenerován s velmi vysokou mírou spolehlivosti Rekapitulace styler Obsah obrázku snímek obrazovky Popis vygenerován s velmi vysokou mírou spolehlivosti Dataset Videogames Obsah obrázku snímek obrazovky Popis vygenerován s velmi vysokou mírou spolehlivosti Kategorická data Kontingenční tabulky # Data Videogames <- read_csv("Video_Games_Sales_as_at_22_Dec_2016.csv") Videogames2 <- read.csv("Video_Games_Sales_as_at_22_Dec_2016.csv") # Skrínink dat view(dfSummary(Videogames)) # Kontingenční tabulka – absolutní četnosti table(Videogames$Genre, Videogames$Rating) # Kontingenční tabulka – hry pro všechny Videogames_Everyone <- Videogames %>% filter(Rating == "E") %>% droplevels() Kategorická data Sloupcový graf # Data Videogames_Everyone_Teen <- Videogames %>% filter(Rating %in% c("E", "T"))%>% droplevels() # Balíček library(ggplot2) # Sloupcový graf ggplot(Videogames_Everyone_Teen, aes(x = Genre, fill = Rating)) + geom_bar(position = "dodge") # Sloupcový graf s úpravou popisků ggplot(Videogames_Everyone_Teen, aes(x = Genre, fill = Rating)) + geom_bar(position = "dodge") + theme(axis.text.x = element_text(angle = 90)) Kategorická data Kontingenční tabulky – relativní četnosti # Tabulka s žánry a hodnocením GenreRating = table(Videogames_Everyone_Teen$Genre, Videogames_Everyone_Teen$Rating) # Celkové relativní četnosti prop.table(GenreRating) # Relativní četnosti pro řádky prop.table(GenreRating, 1) # Relativní četnosti pro sloupce prop.table(GenreRating, 2) Kategorická data Sloupcový graf pro relativní četnosti # Sloupcový graf žánrů dle ratingu ggplot(Videogames_Everyone_Teen, aes(x = Genre, fill = Rating)) + geom_bar() # Proporční graf žánrů dle ratingu ggplot(Videogames_Everyone_Teen, aes(x = Genre, fill = Rating)) + geom_bar(position = "fill") + ylab("proportion") Kategorická data Sloupcový graf pro hodnoty právě jedné proměnné a sloupcový graf s tříděním # Faktorizace proměnné Rating Videogames_Everyone_Teen$Rating <- factor(Videogames_Everyone_Teen$Rating, levels = c("E", "T"), labels = c("Everyone", "Teen")) # Sloupcový graf pro proměnnou Rating ggplot(Videogames_Everyone_Teen, aes(x = Rating)) + geom_bar() # Sloupcový graf pro proměnnou žánr dle proměnné Rating ggplot(Videogames_Everyone_Teen, aes(x = Genre)) + geom_bar() + facet_wrap(~ Rating) + theme(axis.text.x = element_text(angle = 90)) Numerická data Grafické zobrazení # Histogram s facetami (vrstvami) ggplot(Videogames_Everyone_Teen, aes(x = Critic_Score)) + geom_histogram() + facet_wrap(~ Rating) # Filtrace her dle žánrů: střílečky, strategie a RPG Shooter_Strategy_RPG <- filter(Videogames, Genre %in% c("Shooter", "Strategy", "Role-Playing")) # Box plot ggplot(Shooter_Strategy_RPG, aes(x = as.factor(Genre), y = Critic_Score)) + geom_boxplot() # Density plot s překryvem kategorií ggplot(Shooter_Strategy_RPG, aes(x = Critic_Score, fill = as.factor(Genre))) + geom_density(alpha = .3) Numerická data Grafické zobrazení # Histogram počtu prodaných kusů her (v milionech) v EU Videogames %>% ggplot(aes(x = EU_Sales)) + geom_histogram() + ggtitle("Počet prodaných kusů her (v milionech) v EU") # Histogram počtu prodaných kusů her se sportovní tematikou (v milionech) v EU Videogames %>% filter(Genre == "Sports") %>% ggplot(aes(x = EU_Sales)) + geom_histogram() + xlim(c(0, 3)) + ggtitle("Počet prodaných kusů sportovních her (v milionech) v EU") Numerická data Grafické zobrazení # Hodnocení her uživateli – šířka sloupce 30 Videogames %>% ggplot(aes(User_Score_Numeric)) + geom_histogram(binwidth = 30) + ggtitle("Hodnocení her uživateli") # Hodnocení her uživateli – šířka sloupce 3 Videogames %>% ggplot(aes(User_Score_Numeric)) + geom_histogram(binwidth = 3) + ggtitle("Hodnocení her uživateli") # Hodnocení her uživateli – šířka sloupce 10 Videogames %>% ggplot(aes(User_Score_Numeric)) + geom_histogram(binwidth = 10) + ggtitle("Hodnocení her uživateli") Numerická data Grafické zobrazení # Boxplot počtu hodnotících uživatelů Videogames %>% ggplot(aes(x = 1, y = User_Count)) + geom_boxplot() # Vyřazení odlehlých hodnot Videogames_no_out <- Videogames %>% filter(User_Count < 1000) # Boxplot počtu hodnotících uživatelů bez odlehlých hodnot Videogames_no_out %>% ggplot(aes(x = 1, y = User_Count)) + geom_boxplot() Numerická data Sumarizace # Data Ubisoftu Ubisoft = filter(Videogames, ggplot(aes(x = 1, y = User_Count)) + geom_boxplot() # Průměr a medián prodaných her (v milionech kusů) v Severní Americe Ubisoftu jako vydavatele dle žánru Ubisoft %>% group_by(Genre) %>% summarize(mean(NA_Sales), median(NA_Sales)) # Boxplot prodaných her (v milionech kusů) Ubisoftu v Severní Americe jako vydavatele dle žánru Ubisoft %>% ggplot(aes(x = Genre, y = NA_Sales)) + geom_boxplot() Numerická data Sumarizace # Density plot pro nezměněné hodnoty Ubisoft %>% ggplot(aes(x = NA_Sales)) + geom_density() # Logaritmická transformace proměnné Ubisoft <- Ubisoft %>% mutate(log_NA_Sales = log(NA_Sales)) # Density plot pro transformované hodnoty Ubisoft %>% ggplot(aes(x = log_NA_Sales)) + geom_density() Numerická data Identifikace odlehlých hodnot # Filtr pro akční hry od Ubisoftu, přidání proměnné indikující, zda jde o odlehlou hodnotu Ubisoft_Action <- Ubisoft %>% filter(Genre == "Action") %>% mutate(is_outlier = (NA_Sales < 1)) # Odstranění odlehlých hodnot z analýzy, vypracování boxplotu Ubisoft_Action %>% filter(is_outlier == FALSE) %>% ggplot(aes(x = 1, y = NA_Sales)) + geom_boxplot() Zdroje Data Wrangling with dplyr and tidyr Cheat Sheet – https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf