library(readxl) # pomoci skriptu z minule hodiny vytvorte tabulku karaje ##################################### ## vybersloupcu 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 #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 #smazte poslednich 70 sloupcu z tabulky kraje, korme posledniho sloupce 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 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 kscm <- subset(krajeok, krajeok$KSTRANA == 37) ################################# ### 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 names(ods_obec) <- c("OBEC", "ODS") 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)) head(kscm) 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 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) 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) #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)