library(readxl) k1 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-1.xlsx")) k2 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-2.xlsx")) k3 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-3.xlsx")) k4 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-4.xlsx")) k5 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-5.xlsx")) k6 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-6.xlsx")) k7 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-7.xlsx")) k8 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-8.xlsx")) k9 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-9.xlsx")) k10 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-10.xlsx")) k11 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-11.xlsx")) k12 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-12.xlsx")) k13 <- as.data.frame(read_excel("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6p-13.xlsx")) #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 #vytvorte soubor druha pulka, která bude obsahovat druhou polovinu sloupcu 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) 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 #obnova puvodni podoby tabulky 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 #vyber strany s kodem 2, tomto pripade je pod cislem 2 ods #dataset s vyberem prikaz pro vyber z jake tabulky vybirame co vybirame ods <- subset (krajeok, krajeok$KSTRANA == 2) #vyber vsech stran krome ods kromeods <- subset(krajeok, krajeok$KSTRANA != 2) #vyber ods v jihomoravskem kraji #ve vyberu muzeme kombinovat ruzne podminky, zde chceme jen pripady, ktere zaroven odpovidaji tomu, ze jde o ods a ze jde o jmk ods_jmk <- subset(krajeok, krajeok$KSTRANA == 2 & krajeok$kraj == "jihomoravsky") table(krajeok$kraj) #vyber ods v jihomoravském, zlinskem, olomouckem a moravskoslezskem kraji #pokud chceme vice ruznych kategorii z jedne promenn, potrebujeme pouzit vyraz | znamenající nebo (lze napsat pravym altem + w) ods_morava <- subset(krajeok, krajeok$KSTRANA == 2 & (krajeok$kraj == "jihomoravsky" |krajeok$kraj == "olomoucky"| krajeok$kraj == "zlinsky" |krajeok$kraj == "moravskoslezsky" )) #6 1060 Piráti + Změna + ProRegion -> Kraj nové generace #7 1138 Koalice Svoboda a přímá demokracie - Tomio Okamura (SPD) a Strana Práv Občanů a SNK #37 47 Komunistická strana Čech a Moravy #12 7 Česká strana sociálně demokratická #13 1145 PRO JIŽNÍ ČECHY - Starostové, HOPB a TOP 09 #16 1152 Starostové PRO VYSOČINU #21 1066 Zelení a Piráti #22 1080 Pro otevřený kraj - Piráti, Zelení, Změna #23 1144 Starostové pro Jižní Moravu #24 1 Křesťanská a demokratická unie - Československá strana lidová #30 768 ANO 2011 #32 721 TOP 09 #34 166 STAROSTOVÉ A NEZÁVISLÍ #36 1142 Koalice pro Královéhradecký kraj - KDU-ČSL - Hradecký demokratický klub - Volba pro město #42 1146 Starostové ProOlomoucký kraj #47 1169 STAROSTOVÉ a nezávislí #48 1114 Svoboda a přímá demokracie - Tomio Okamura (SPD) #50 1153 STAROSTOVÉ A VÝCHODOČEŠI #55 344 Koalice pro Pardubický kraj - KDU-ČSL - SNK #56 1066 Piráti a Strana zelených + Změna pro Královéhradecký kraj #61 1151 Koalice pro Plzeňský kraj - KDU-ČSL, Strana zelených a hnutí Nestraníci #63 1140 STAROSTOVÉ A NEZÁVISLÍ (STAN) s podporou KOA, KDU-ČSL a TOP 09 #72 1103 "SPOLU PRO KRAJ KDU-ČSL, SZ A SNK ED" #73 1093 Žijeme Vysočinou - TOP 09 a Zelení #74 303 Koalice pro Olomoucký kraj společně se starosty - KDU-ČSL - SNK #77 1066 Piráti a Strana zelených #78 1138 Koalice Svoboda a přímá demokracie - Tomio Okamura (SPD) a Strana Práv Občanů #82 720 Česká pirátská strana #83 703 Starostové pro Liberecký kraj #87 TOP 09 s podporou starostů a "Žít Brno" #vyberte radky s podporou pro stranu ANO ano <- subset(krajeok, krajeok$KSTRANA == 30) #vyberte radky s podporou pro stranu KDU-CSL a koalice ve kterych je zahrnuta kdu <- subset(krajeok, krajeok$KSTRANA == 24|krajeok$KSTRANA == 36|krajeok$KSTRANA == 55| krajeok$KSTRANA == 61|krajeok$KSTRANA == 72|krajeok$KSTRANA == 74) #vyberte radky s podporou pro stranu CSSD cssd <- subset(krajeok, krajeok$KSTRANA == 12) #vyberte radky s podporou pro stranu ods ods <- subset(krajeok, krajeok$KSTRANA == 2) #vyberte radky s podporou pro stranu kscm v jihomoravskem kraji kscm <- subset(krajeok, krajeok$KSTRANA == 37 & krajeok$kraj == "jihomoravsky") #vyberte radky s podporou pro strany STAN a Piráty v jihomoravskem a stredoceskem kraji stan_pirati_jmk_sck <- subset(krajeok, (krajeok$KSTRANA == 82 | krajeok$KSTRANA == 47)& (krajeok$kraj == "jihomoravsky" |krajeok$kraj == "stredocesky")) ################################# ### souhrn ##################### ################################# head(ods) #k provadeni souhrnu potrebujeme knihovnu plyr install.packages("plyr") library(plyr) ??plyr ??summarise ??ddply #soucet radku se stejnym kodem ve sloupci ODS, sectou se pocty hlasu #vysledek souhrnu prikaz k operaci s daty dataset souctovy sloupec operace vysledek vzorec ods_obec <- ddply(ods, ~OBEC, summarise,POC_HLASU = sum(POC_HLASU)) #namisto sum lze pouzit mean, median, sd, min, max, count (n), first, last #vlnovku lze napsat pravy alt + 1 (na textove klavesnici, mezi středníkem a ě) #prejmenovani sloupcu names(ods_obec) <- c("OBEC", "ODS") #nazev sloupce mueme definovat uz pri sumarizaci ano_obec <- ddply(ano,~OBEC,summarise,ANO=sum(POC_HLASU)) #provedte souhrny pro cssd, kdu a kscm cssd_obec <- ddply(cssd,~OBEC,summarise,cssd=sum(POC_HLASU)) kdu_obec <- ddply(kdu,~OBEC,summarise,KDU=sum(POC_HLASU)) kscm_obec <- ddply(kscm,~OBEC,summarise,kscm=sum(POC_HLASU)) kzt <- as.data.frame(read_xlsx("C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\KZ2016data20161008_xlsx\\kzt6.xlsx")) head(kzt) volici <- ddply(kzt,~OBEC,summarise,volici=sum(VOL_SEZNAM),vydane=sum(VYD_OBALKY),odevzdane=sum(ODEVZ_OBAL),platne=sum(PL_HL_CELK),prum_hlasu=mean(PL_HL_CELK), okr=min(ID_OKRSKY )) ################################# ### spojovani pomoci kodu ####### ################################# #spojeny dataset<- prikaz ke spojeni(datset ke kteremu pripojujeme, pripojovony dataset, propojovaci sloupec z 1. tabulky, z 2. tabulky, ktere pripady se objevi v datasetu volici_ods <- merge (volici, ods_obec, by.x="OBEC", by.y="KOD_OBCE", all.x=FALSE, all.y=FALSE) #all.x= T a all.y=T - všechny řádky z obou tabulek #all.x= T a all.y=F - všechny řádky z 1. tabulky a odpovídající řádky z druhé, bez přesahujících dat z 2. tabulky #all.x= F a all.y=T - všechny řádky z 2. tabulky a odpovídající řádky z první, bez přesahujících dat z 1. tabulky #all.x= F a all.y=F - pouze řádky nacházející se v první a zároveň druhé tabulce kdu_ods <- merge(kdu_obec, ods_obec, by.x="OBEC", by.y="OBEC", all.x=TRUE, all.y=TRUE) kdu_ods2 <- merge(kdu_obec, ods_obec, by.x="OBEC", by.y="OBEC", all.x=FALSE, all.y=TRUE) kdu_ods3 <- merge(kdu_obec, ods_obec, by.x="OBEC", by.y="OBEC", all.x=TRUE, all.y=FALSE) kdu_ods4 <- merge(kdu_obec, ods_obec, by.x="OBEC", by.y="OBEC", all.x=FALSE, all.y=FALSE) volici_ods <- merge(volici, ods_obec, by.x="OBEC", by.y="OBEC", all.x=TRUE, all.y=TRUE) volici_ods_ano <- merge(volici_ods, ano_obec, by.x="OBEC", by.y="OBEC", all.x=TRUE, all.y=TRUE) volici_ods_ano_ <- merge(volici_ods, ano_obec, by.x="OBEC", by.y="OBEC", all.x=TRUE, all.y=TRUE) #spojeni vetsiho poctu tabulek dohromady strany <- Reduce(function(x,y) merge(x,y,by="OBEC",all=TRUE), list(volici, ods_obec, ano_obec,cssd_obec, kdu_obec,kscm_obec)) write.csv(strany,"C:\\Users\\petrh\\Documents\\politologie\\vyuka\\datamanagment\\kv16.csv") head(strany)