Por José Alejandro Llamas Carpio

library (dplyr)
Registered S3 method overwritten by 'dplyr':
  method           from
  print.rowwise_df     

Attaching package: 㤼㸱dplyr㤼㸲

The following objects are masked from 㤼㸱package:stats㤼㸲:

    filter, lag

The following objects are masked from 㤼㸱package:base㤼㸲:

    intersect, setdiff, setequal, union
library (ggplot2)
require(maps)
Loading required package: maps
df = read.csv("primary_results.csv")
df
1. ¿Cuántos candidatos estaban en las primarias?
candidatos = df %>%
  select(candidate)%>%
  summarise(num_cand = n_distinct(candidate))

candidatos
R//: Había un total de 16 distintos candidatos en las primarias. Esta es la misma respuesta para la pregunta No. 2.
3. ¿Qué partido obtuvo la mayor cantidad de votos en Florida?
party_fl = df %>%
  filter(state_abbreviation == "FL")%>%
  group_by(party)%>%
  summarise(No_Votos = n())
party_fl
R//: El partido con la mayor cantidad de votos en Florida fueron los Republicanos con 268 votos.
4. Realice una gráfica sobre el Top 10 de los condados de Colorado que tiene más votantes.
top10condados = df %>%
  filter (state_abbreviation == "CO")%>%
  group_by(county)%>%
  summarise(Votos = sum(votes, na.rm = T))%>%
  top_n(10, Votos)%>% #En top_n siempre hacer referencia a la variable de Agregación sobre la cual aplicar
  arrange(-Votos)
top10condados   

ggplot(data = top10condados, aes(x= reorder(county,Votos), y=Votos)) + coord_flip() + xlab("Condados") + ylab("Votos") + ggtitle("Top10 Condados con más votos en Colorado") + geom_bar(stat = "identity", width = 0.7, fill = rainbow(n=length(top10condados$county)))

5. ¿En el estado de California, que condado tuvo la mayor cantidad de votantes?
condado_ca = df %>%
  filter(state == "California")%>%
  group_by(county)%>%
  summarise(Cantidad_Votos = sum(votes))%>%
  arrange(-Cantidad_Votos)
condado_ca
R//: El condado con la mayor cantidad de votos fue Los Angeles con más de 1.2MM de votos.
6. Realice una gráfica de barras la cual muestre cuántas personas votaron por Hillary Clinton y cuantas por Donald Trump
clintontrump = df %>%
  filter (candidate == "Hillary Clinton" | candidate == "Donald Trump")%>%
  group_by(candidate)%>%
  summarise (Cantidad_Votos = n())

clintontrump
ggplot(data = clintontrump, aes(x=candidate,y=Cantidad_Votos)) + coord_flip()+ xlab("Candidatos") +  ylab("Cantidad de votos") + ggtitle("Hillary Clinton vs. Donald Trump") + geom_bar(stat="identity", aes(fill=candidate), width = 0.7)

7. ¿Cuál es la probabilidad de que si un votante es republicano en Florida haya votado por Jeb Bush?
republicano.fl = df %>%
  filter(state == "Florida" & party == "Republican")%>%
  summarise (Votante.Fl = sum(votes))

republicano.fl.jeb = df %>%
  filter(state == "Florida" & party == "Republican" & candidate =="Jeb Bush")%>%
  summarise (Votante.Fl.Jeb = sum(votes))

probabilidad.p7 = republicano.fl.jeb/republicano.fl

probabilidad.p7
R//: La probabilidad que un republicado en Florida vote por Jeb Bush es del 0%.
8. Dado que una persona votó por Ted Cruz, ¿Cuál es la probabilidad que sea de California?
tedcruz = df %>%
  filter(candidate == "Ted Cruz")%>%
  summarise (TedCruz = sum(votes))

tedcruz.ca = df %>%
  filter(candidate == "Ted Cruz" & state == "California")%>%
  summarise (TedCruz.Ca = sum(votes))

probabilidad.p8 = tedcruz.ca / tedcruz
  
probabilidad.p8
R//: La probabilidad que una persona que haya votado por Ted Cruz y sea de California es de 0.018.
9. Realice una gráfica sobre el top 10 de condados de los Estados Unidos con la mayor cantidad de votantes.
top10condados.usa = df %>%
  group_by(county)%>%
  summarise(Votos = sum(votes, na.rm = T))%>%
  top_n(10, Votos)%>%
  arrange(-Votos)
top10condados.usa

ggplot(data = top10condados.usa, aes(x= reorder(county,Votos), y=Votos)) + coord_flip() + xlab("Condados")+ ggtitle ("Top10 Condados con más votos en USA") + geom_bar(stat = "identity", width = 0.7, fill = rainbow(n=length(top10condados.usa$county)))

10. Genere una gráfica del mapa Estados Unidos donde se muestre la cantidad de votantes por estado por medio de un color.
#US States
states_map <- map_data("state")
#ggplot(states_map, aes(x=long, y=lat, group=group, fill = region)) + geom_polygon(color="white") + guides (fill = F) <-- este es el código para dibujar un mapa

#Votantes Data - USA
usa = df %>%
  group_by(state)%>%
  summarise(Votos = sum(votes, na.rm = T))%>%
  arrange(desc(Votos))


#Merge
usa$region = tolower(usa$state)
usa
heatmap <- left_join(states_map, usa, by = "region")

#Gráfica
options(scipen = 999)

ggplot(heatmap, aes(x=long, y=lat, group = group, fill = Votos)) +
  geom_polygon(color = "gray") +
  coord_map("polyconic")+
  scale_fill_gradient2(low="white", high = "red") +
  ggtitle("Mapa de calor - Votantes por Estado")

LS0tDQp0aXRsZTogIk1pbmVyw61hIGRlIGRhdG9zIGNvbiBEUExZUiINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQojIyMgUG9yIEpvc8OpIEFsZWphbmRybyBMbGFtYXMgQ2FycGlvDQpgYGB7cn0NCmxpYnJhcnkgKGRwbHlyKQ0KbGlicmFyeSAoZ2dwbG90MikNCnJlcXVpcmUobWFwcykNCmBgYA0KDQpgYGB7cn0NCmRmID0gcmVhZC5jc3YoInByaW1hcnlfcmVzdWx0cy5jc3YiKQ0KZGYNCmBgYA0KDQojIyMjIyAxLiDCv0N1w6FudG9zIGNhbmRpZGF0b3MgZXN0YWJhbiBlbiBsYXMgcHJpbWFyaWFzPw0KDQpgYGB7cn0NCmNhbmRpZGF0b3MgPSBkZiAlPiUNCiAgc2VsZWN0KGNhbmRpZGF0ZSklPiUNCiAgc3VtbWFyaXNlKG51bV9jYW5kID0gbl9kaXN0aW5jdChjYW5kaWRhdGUpKQ0KDQpjYW5kaWRhdG9zDQpgYGANCiANCiMjIyMjIFIvLzogSGFiw61hIHVuIHRvdGFsIGRlIDE2IGRpc3RpbnRvcyBjYW5kaWRhdG9zIGVuIGxhcyBwcmltYXJpYXMuIEVzdGEgZXMgbGEgbWlzbWEgcmVzcHVlc3RhIHBhcmEgbGEgcHJlZ3VudGEgTm8uIDIuDQogDQojIyMjIyAzLiDCv1F1w6kgcGFydGlkbyBvYnR1dm8gbGEgbWF5b3IgY2FudGlkYWQgZGUgdm90b3MgZW4gRmxvcmlkYT8NCg0KYGBge3J9DQpwYXJ0eV9mbCA9IGRmICU+JQ0KICBmaWx0ZXIoc3RhdGVfYWJicmV2aWF0aW9uID09ICJGTCIpJT4lDQogIGdyb3VwX2J5KHBhcnR5KSU+JQ0KICBzdW1tYXJpc2UoTm9fVm90b3MgPSBuKCkpDQpwYXJ0eV9mbA0KYGBgDQoNCiMjIyMjIFIvLzogRWwgcGFydGlkbyBjb24gbGEgbWF5b3IgY2FudGlkYWQgZGUgdm90b3MgZW4gRmxvcmlkYSBmdWVyb24gbG9zIFJlcHVibGljYW5vcyBjb24gMjY4IHZvdG9zLg0KDQoNCiMjIyMjIDQuIFJlYWxpY2UgdW5hIGdyw6FmaWNhIHNvYnJlIGVsIFRvcCAxMCBkZSBsb3MgY29uZGFkb3MgZGUgQ29sb3JhZG8gcXVlIHRpZW5lIG3DoXMgdm90YW50ZXMuDQpgYGB7cn0NCnRvcDEwY29uZGFkb3MgPSBkZiAlPiUNCiAgZmlsdGVyIChzdGF0ZV9hYmJyZXZpYXRpb24gPT0gIkNPIiklPiUNCiAgZ3JvdXBfYnkoY291bnR5KSU+JQ0KICBzdW1tYXJpc2UoVm90b3MgPSBzdW0odm90ZXMsIG5hLnJtID0gVCkpJT4lDQogIHRvcF9uKDEwLCBWb3RvcyklPiUgI0VuIHRvcF9uIHNpZW1wcmUgaGFjZXIgcmVmZXJlbmNpYSBhIGxhIHZhcmlhYmxlIGRlIEFncmVnYWNpw7NuIHNvYnJlIGxhIGN1YWwgYXBsaWNhcg0KICBhcnJhbmdlKC1Wb3RvcykNCnRvcDEwY29uZGFkb3MgICANCg0KZ2dwbG90KGRhdGEgPSB0b3AxMGNvbmRhZG9zLCBhZXMoeD0gcmVvcmRlcihjb3VudHksVm90b3MpLCB5PVZvdG9zKSkgKyBjb29yZF9mbGlwKCkgKyB4bGFiKCJDb25kYWRvcyIpICsgeWxhYigiVm90b3MiKSArIGdndGl0bGUoIlRvcDEwIENvbmRhZG9zIGNvbiBtw6FzIHZvdG9zIGVuIENvbG9yYWRvIikgKyBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5Iiwgd2lkdGggPSAwLjcsIGZpbGwgPSByYWluYm93KG49bGVuZ3RoKHRvcDEwY29uZGFkb3MkY291bnR5KSkpDQpgYGANCg0KIyMjIyMgNS4gwr9FbiBlbCBlc3RhZG8gZGUgQ2FsaWZvcm5pYSwgcXVlIGNvbmRhZG8gdHV2byBsYSBtYXlvciBjYW50aWRhZCBkZSB2b3RhbnRlcz8NCg0KYGBge3J9DQpjb25kYWRvX2NhID0gZGYgJT4lDQogIGZpbHRlcihzdGF0ZSA9PSAiQ2FsaWZvcm5pYSIpJT4lDQogIGdyb3VwX2J5KGNvdW50eSklPiUNCiAgc3VtbWFyaXNlKENhbnRpZGFkX1ZvdG9zID0gc3VtKHZvdGVzKSklPiUNCiAgYXJyYW5nZSgtQ2FudGlkYWRfVm90b3MpDQpjb25kYWRvX2NhDQpgYGANCg0KIyMjIyMgUi8vOiBFbCBjb25kYWRvIGNvbiBsYSBtYXlvciBjYW50aWRhZCBkZSB2b3RvcyBmdWUgTG9zIEFuZ2VsZXMgY29uIG3DoXMgZGUgMS4yTU0gZGUgdm90b3MuDQoNCg0KIyMjIyMgNi4gUmVhbGljZSB1bmEgZ3LDoWZpY2EgZGUgYmFycmFzIGxhIGN1YWwgbXVlc3RyZSBjdcOhbnRhcyBwZXJzb25hcyB2b3Rhcm9uIHBvciBIaWxsYXJ5IENsaW50b24geSBjdWFudGFzIHBvciBEb25hbGQgVHJ1bXANCg0KYGBge3J9DQpjbGludG9udHJ1bXAgPSBkZiAlPiUNCiAgZmlsdGVyIChjYW5kaWRhdGUgPT0gIkhpbGxhcnkgQ2xpbnRvbiIgfCBjYW5kaWRhdGUgPT0gIkRvbmFsZCBUcnVtcCIpJT4lDQogIGdyb3VwX2J5KGNhbmRpZGF0ZSklPiUNCiAgc3VtbWFyaXNlIChDYW50aWRhZF9Wb3RvcyA9IG4oKSkNCg0KY2xpbnRvbnRydW1wDQpgYGANCmBgYHtyfQ0KZ2dwbG90KGRhdGEgPSBjbGludG9udHJ1bXAsIGFlcyh4PWNhbmRpZGF0ZSx5PUNhbnRpZGFkX1ZvdG9zKSkgKyBjb29yZF9mbGlwKCkrIHhsYWIoIkNhbmRpZGF0b3MiKSArICB5bGFiKCJDYW50aWRhZCBkZSB2b3RvcyIpICsgZ2d0aXRsZSgiSGlsbGFyeSBDbGludG9uIHZzLiBEb25hbGQgVHJ1bXAiKSArIGdlb21fYmFyKHN0YXQ9ImlkZW50aXR5IiwgYWVzKGZpbGw9Y2FuZGlkYXRlKSwgd2lkdGggPSAwLjcpDQpgYGANCg0KIyMjIyMgNy4gwr9DdcOhbCBlcyBsYSBwcm9iYWJpbGlkYWQgZGUgcXVlIHNpIHVuIHZvdGFudGUgZXMgcmVwdWJsaWNhbm8gZW4gRmxvcmlkYSBoYXlhIHZvdGFkbyBwb3IgSmViIEJ1c2g/DQpgYGB7cn0NCnJlcHVibGljYW5vLmZsID0gZGYgJT4lDQogIGZpbHRlcihzdGF0ZSA9PSAiRmxvcmlkYSIgJiBwYXJ0eSA9PSAiUmVwdWJsaWNhbiIpJT4lDQogIHN1bW1hcmlzZSAoVm90YW50ZS5GbCA9IHN1bSh2b3RlcykpDQoNCnJlcHVibGljYW5vLmZsLmplYiA9IGRmICU+JQ0KICBmaWx0ZXIoc3RhdGUgPT0gIkZsb3JpZGEiICYgcGFydHkgPT0gIlJlcHVibGljYW4iICYgY2FuZGlkYXRlID09IkplYiBCdXNoIiklPiUNCiAgc3VtbWFyaXNlIChWb3RhbnRlLkZsLkplYiA9IHN1bSh2b3RlcykpDQoNCnByb2JhYmlsaWRhZC5wNyA9IHJlcHVibGljYW5vLmZsLmplYi9yZXB1YmxpY2Fuby5mbA0KDQpwcm9iYWJpbGlkYWQucDcNCmBgYA0KIyMjIyMgUi8vOiBMYSBwcm9iYWJpbGlkYWQgcXVlIHVuIHJlcHVibGljYWRvIGVuIEZsb3JpZGEgdm90ZSBwb3IgSmViIEJ1c2ggZXMgZGVsIDAlLg0KDQojIyMjIyA4LiBEYWRvIHF1ZSB1bmEgcGVyc29uYSB2b3TDsyBwb3IgVGVkIENydXosIMK/Q3XDoWwgZXMgbGEgcHJvYmFiaWxpZGFkIHF1ZSBzZWEgZGUgQ2FsaWZvcm5pYT8NCmBgYHtyfQ0KdGVkY3J1eiA9IGRmICU+JQ0KICBmaWx0ZXIoY2FuZGlkYXRlID09ICJUZWQgQ3J1eiIpJT4lDQogIHN1bW1hcmlzZSAoVGVkQ3J1eiA9IHN1bSh2b3RlcykpDQoNCnRlZGNydXouY2EgPSBkZiAlPiUNCiAgZmlsdGVyKGNhbmRpZGF0ZSA9PSAiVGVkIENydXoiICYgc3RhdGUgPT0gIkNhbGlmb3JuaWEiKSU+JQ0KICBzdW1tYXJpc2UgKFRlZENydXouQ2EgPSBzdW0odm90ZXMpKQ0KDQpwcm9iYWJpbGlkYWQucDggPSB0ZWRjcnV6LmNhIC8gdGVkY3J1eg0KICANCnByb2JhYmlsaWRhZC5wOA0KYGBgDQojIyMjIyBSLy86IExhIHByb2JhYmlsaWRhZCBxdWUgdW5hIHBlcnNvbmEgcXVlIGhheWEgdm90YWRvIHBvciBUZWQgQ3J1eiB5IHNlYSBkZSBDYWxpZm9ybmlhIGVzIGRlIDAuMDE4Lg0KDQojIyMjIyA5LiBSZWFsaWNlIHVuYSBncsOhZmljYSBzb2JyZSBlbCB0b3AgMTAgZGUgY29uZGFkb3MgZGUgbG9zIEVzdGFkb3MgVW5pZG9zIGNvbiBsYSBtYXlvciBjYW50aWRhZCBkZSB2b3RhbnRlcy4NCg0KYGBge3J9DQp0b3AxMGNvbmRhZG9zLnVzYSA9IGRmICU+JQ0KICBncm91cF9ieShjb3VudHkpJT4lDQogIHN1bW1hcmlzZShWb3RvcyA9IHN1bSh2b3RlcywgbmEucm0gPSBUKSklPiUNCiAgdG9wX24oMTAsIFZvdG9zKSU+JQ0KICBhcnJhbmdlKC1Wb3RvcykNCnRvcDEwY29uZGFkb3MudXNhDQoNCmdncGxvdChkYXRhID0gdG9wMTBjb25kYWRvcy51c2EsIGFlcyh4PSByZW9yZGVyKGNvdW50eSxWb3RvcyksIHk9Vm90b3MpKSArIGNvb3JkX2ZsaXAoKSArIHhsYWIoIkNvbmRhZG9zIikrIGdndGl0bGUgKCJUb3AxMCBDb25kYWRvcyBjb24gbcOhcyB2b3RvcyBlbiBVU0EiKSArIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiLCB3aWR0aCA9IDAuNywgZmlsbCA9IHJhaW5ib3cobj1sZW5ndGgodG9wMTBjb25kYWRvcy51c2EkY291bnR5KSkpDQpgYGANCg0KIyMjIyMgMTAuIEdlbmVyZSB1bmEgZ3LDoWZpY2EgZGVsIG1hcGEgRXN0YWRvcyBVbmlkb3MgZG9uZGUgc2UgbXVlc3RyZSBsYSBjYW50aWRhZCBkZSB2b3RhbnRlcyBwb3IgZXN0YWRvIHBvciBtZWRpbyBkZSB1biBjb2xvci4NCmBgYHtyfQ0KI1VTIFN0YXRlcw0Kc3RhdGVzX21hcCA8LSBtYXBfZGF0YSgic3RhdGUiKQ0KI2dncGxvdChzdGF0ZXNfbWFwLCBhZXMoeD1sb25nLCB5PWxhdCwgZ3JvdXA9Z3JvdXAsIGZpbGwgPSByZWdpb24pKSArIGdlb21fcG9seWdvbihjb2xvcj0id2hpdGUiKSArIGd1aWRlcyAoZmlsbCA9IEYpIDwtLSBlc3RlIGVzIGVsIGPDs2RpZ28gcGFyYSBkaWJ1amFyIHVuIG1hcGENCg0KI1ZvdGFudGVzIERhdGEgLSBVU0ENCnVzYSA9IGRmICU+JQ0KICBncm91cF9ieShzdGF0ZSklPiUNCiAgc3VtbWFyaXNlKFZvdG9zID0gc3VtKHZvdGVzLCBuYS5ybSA9IFQpKSU+JQ0KICBhcnJhbmdlKGRlc2MoVm90b3MpKQ0KDQoNCiNNZXJnZQ0KdXNhJHJlZ2lvbiA9IHRvbG93ZXIodXNhJHN0YXRlKQ0KdXNhDQpoZWF0bWFwIDwtIGxlZnRfam9pbihzdGF0ZXNfbWFwLCB1c2EsIGJ5ID0gInJlZ2lvbiIpDQoNCiNHcsOhZmljYQ0Kb3B0aW9ucyhzY2lwZW4gPSA5OTkpDQoNCmdncGxvdChoZWF0bWFwLCBhZXMoeD1sb25nLCB5PWxhdCwgZ3JvdXAgPSBncm91cCwgZmlsbCA9IFZvdG9zKSkgKw0KICBnZW9tX3BvbHlnb24oY29sb3IgPSAiZ3JheSIpICsNCiAgY29vcmRfbWFwKCJwb2x5Y29uaWMiKSsNCiAgc2NhbGVfZmlsbF9ncmFkaWVudDIobG93PSJ3aGl0ZSIsIGhpZ2ggPSAicmVkIikgKw0KICBnZ3RpdGxlKCJNYXBhIGRlIGNhbG9yIC0gVm90YW50ZXMgcG9yIEVzdGFkbyIpDQpgYGANCg0K