#stahnete vysledky krajskych voleb 2016 #https://www.volby.cz/opendata/kz2016/KZ2016data20161008_xlsx.zip #aktivujte knihovnu umoznujici otevrit excel library(readxl) #nactete soubory kzt6p-1 - kzt6p-13 pod jmeny k1, k2, ..., k13 k1 <- read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-1.xlsx") #v okne environmentje napsano, ze nactena data jsou ve formatu tbl_df, pouzijeme tedy napovedu co to znamena, v principu jde o to, ze nazvy sloupcu jsou oddeleny od dat ?tbl_df #pro nacteni umoznujici spravne provedeni doplnime prikaz o as.data.frame, ktery upravi format z tbl_df na data.frame, což je format, ktery potrebujeme #pozor na zavorky as.data.frame je operace, takze to na co operaci aplikujeme musi byt v zavorce. Pozor zejmena na uzavereni zavorky k1 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-1.xlsx")) k2 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-2.xlsx")) k3 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-3.xlsx")) k4 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-4.xlsx")) k5 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-5.xlsx")) k6 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-6.xlsx")) k7 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-7.xlsx")) k8 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-8.xlsx")) k9 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-9.xlsx")) k10 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-10.xlsx")) k11 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-11.xlsx")) k12 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-12.xlsx")) k13 <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-13.xlsx")) #kolik maji jednotlive tabulky sloupcu a radku ##vidime v environment pripadne str(k1) str(k2) #... #sloupcu je vzdy 86, radky je od 5252 do 24820 #jak se sloupce jmenuji? Jsou nazvy stejne v tabulce k1 a k13 names(k1) names(k13) #jake jmeno ma 5 sloupec names(k1)[5] #jak se jmenuje prvnich 10 sloupcu names(k1)[1:10] k1[0, 1:10] #jak se jmenuje poslednich 10 sloupcu names(k1)[77:86] #pridani oznaceni kraje do tabulky k1$kraj <- "stredocesky" k2$kraj <- "jihocesky" k3$kraj <- "plzensky" k4$kraj <- "karlovarsky" k5$kraj <- "ustecky" k6$kraj <- "liberecky" k7$kraj <- "kralovehradecky" k8$kraj <- "pardubicky" k9$kraj <- "vysocina" k10$kraj <- "jihomoravsky" k11$kraj <- "olomoucky" k12$kraj <- "zlinsky" k13$kraj <- "moravskoslezsky" #kdyz mame v kazde tabulce stejne mnozstvi sloupcu se stejnymi nazvy, tak muzeme tabulku spojit pomoci prikazu rbind ?rbind k1a2 <- rbind(k1,k2) kraje <- rbind(k1, k2,k3, k4,k5,k6, k7,k8, k9,k10,k11, k12,k13) #rozdeleni tabulky pomoci pozic sloupcu prvni_pulka <- kraje[,1:43] # funguje podobne jako lode, jen sloupce i rdky jsou oznaceny cisly a lze strilet do vetsi plochy, pred carkou jsou radky, za carkou sloupce, kdyz zustane prazdne, zamena to vyber vseho druha_pulka <- kraje[,44:86] #pripojeni sloupcu pomoci cbind kraje_znovu <- cbind(prvni_pulka, druha_pulka) #rozdil mezi cbind a rbind #cbind: -- + -- = ---- #rbind: ---- # + = ---- # ---- ---- names(kraje) ######################################### ## Vyber sloupcu z tabulky ############# ######################################## #vyber dle nazvu sloupcu obec <- kraje["OBEC"] #kdyz mame jeden prvek, tak jej napiseme do hranate zavorky krajeok <- kraje[c("kraj", "OBEC", "OKRSEK", "KSTRANA" , "POC_HLASU")] #kdyz mame prvku vice, musime je zapsat do kulate zavorky a pred ni napsat pismeno c, to urcuje, ze v zavorce je list hodnot #vyber dle pozice sloupcu names(kraje)[c(6, 9, 10)] krajeok_jinak <- kraje[c(6, 9, 10)] #vyber dle pozice sloupcu #smazani sloupce kraje$TYP_FORM <- NULL #pozor, jde o nevratnou operaci, pokud se chcete vratit zpet, je nutne provest prikaz vyrabejici objekt kraje #smazani vice sloupcu kraje[c("ID_OKRSKY","TYP_FORM","OPRAVA","CHYBA","OKRES")] <- list(NULL) #pozor, jde o nevratnou operaci, pokud se chcete vratit zpet, je nutne provest prikaz vyrabejici objekt kraje kraje <- rbind(k1, k2,k3, k4,k5,k6, k7,k8, k9,k10,k11, k12,k13) #vyberte sloupce obec, poc_hlasu, a hlasy_01 - hlasy_05 z tabulky kraje kraje_vyber <- kraje[c( "OBEC", "POC_HLASU", "HLASY_01", "HLASY_02", "HLASY_03", "HLASY_04", "HLASY_05")] #smazte poslednich 70 sloupcu z tabulky kraje, korme posledniho sloupce kraje[,c(17:86)]<- NULL kraje <- rbind(k1, k2,k3, k4,k5,k6, k7,k8, k9,k10,k11, k12,k13) ##################################### ## vyber radku z tabulky ############ ##################################### #vyber dle pozice krajeok[20:30,] #vyber dle hodnot ods <- subset(krajeok, krajeok$KSTRANA == 2) kromeods <- subset(krajeok, krajeok$KSTRANA != 2) ods_jmk <- subset(krajeok, krajeok$KSTRANA == 2 & krajeok$kraj == "jihomoravsky") table(krajeok$kraj) ods_morava <- subset(krajeok, krajeok$KSTRANA == 2 & (krajeok$kraj == "jihomoravsky" |krajeok$kraj == "olomoucky"| krajeok$kraj == "zlinsky" |krajeok$kraj == "moravskoslezsky" )) # #pokud chceme spojit vice tabulek #list = sada hodnot analyzovat = Reduce(function(x,y) merge(x,y,by="id_forum",all=TRUE), list(forum, spfce,sp_bfce, fce,clen))