Siga as instruções abaixo. Documente todos os seus passos em um script. Comente no seu script todos os seus passos e explique a si mesma(o) suas escolhas e estratégias. Se você se beneficiou da assistência de outra pessoa, sempre reconheça isso em comentários no código.
Vamos trabalhar de novo com os dados eleitorais do Tribunal Superior Eleitoral, o qual disponibiliza dados sobre os resultados eleitorais separadamente dos dados sobre os candidatos. Baixe os dados de Resultados e Candidatos de Roraima. Observe que os dados são processados (não sendo os originais) e contém apenas a informação de vereadores.
Abra os dois bancos em R com o separador apropriado (note que o formato é um pouco diferente dos arquivos no desafio 1 - o encoding é o padrão, UTF8 e os nomes de colunas já estão presentes).
library("tidyverse")
library("tidylog")
resultados <- read_delim("resultados_2016_RR.csv",
delim=";")
candidatos <- read_delim("candidatos_2016_RR.csv",
delim=";")
#SQ_CANDIDATO
anti_join para identificar se há resultados que faltam detalhes do seu candidato no banco de dados de candidatos.anti_join para identificar se há candidatos faltando no banco de dados de resultados. Investigando as colunas do resultado de anti_join, você pode identificar porque eles não existem no banco de resultados?)Os candidatos sem resultados são aqueles ‘inaptos’ para a eleição.
left_join() apropriado.left_join() apropriado para incorporar os dados dos candidatos.candidatos_resultados_totais <- candidatos %>% left_join(resultados_totais, by="SQ_CANDIDATO")
#OU
candidatos_resultados_totais <- resultados_totais %>% right_join(candidatos, by="SQ_CANDIDATO")
QT_VOTOS_NOMINAIS foi preenchida em 6(a) para os candidatos que não receberam votos no banco resultados? Sabendo que esses candidatos não receberam voto, recodifique a coluna para inserir zero votos nos locais apropriados da coluna QT_VOTOS_NOMINAIS.NM_UE).Escolha um tipo de gráfico apropriado e crie o gráfico.
Adicione um título ao seu gráfico, e rótulos nos eixos.
Use o código da camada + theme(axis.text.x = element_text(angle = 90)) para virar o texto do município vertical e deixar mais visível.
resultados_totais_candidatos %>%
ggplot() +
geom_bar(aes(x=NM_UE)) +
ggtitle("Número de Candidatos por Município") +
xlab("Município") +
ylab("Número de Candidatos") +
theme(axis.text.x = element_text(angle = 90))
DS_GENERO) no estado inteiro. Prepare um gráfico apropriado, com título, rótulos nos eixos e aplique um tema simples da sua escolha.resultados_totais_candidatos %>%
ggplot() +
geom_bar(aes(x=DS_GENERO)) +
ggtitle("Número de Candidatos por Gênero") +
xlab("Gênero") +
ylab("Número de Candidatos") +
theme_classic()
resultados_totais_candidatos %>% group_by(NM_UE, DS_GENERO) %>%
tally() %>%
ggplot() +
geom_col(aes(x=NM_UE, y=n, fill=DS_GENERO), position="fill") +
ggtitle("O Porcentagem de Candidatos por Município e Gênero") +
xlab("Município") +
ylab("Porcentagem de Candidatos") +
theme(axis.text.x = element_text(angle = 90)) +
theme(legend.position="bottom")
DS_SIT_TOT_TURNO.sucesso_por_genero_mun %>%
filter(DS_GENERO=="FEMININO" & Eleito==1) %>%
ggplot() +
geom_col(aes(x=NM_UE, y=Pct_eleito)) +
ggtitle("O Porcentagem de Candidatos Femininos Eleitos por Município") +
xlab("Município") +
ylab("% de Candidatos Eleitos") +
theme_classic() +
theme(axis.text.x = element_text(angle = 90))
sucesso_por_genero_mun %>%
filter(Eleito==1) %>%
ggplot() +
geom_col(aes(x=NM_UE, y=Pct_eleito, fill=DS_GENERO), position="dodge") +
ggtitle("O Porcentagem de Candidatos Eleitos por Município e Gênero") +
xlab("Município") +
ylab("% de Candidatos Eleitos") +
theme_classic() +
theme(axis.text.x = element_text(angle = 90))
O município em que as mulheres têm uma maior taxa de sucesso que os homens é CAROEBE.
resultados_totais_candidatos %>% group_by(NM_UE, DS_GENERO) %>%
tally() %>%
ggplot() +
geom_tile(aes(x=DS_GENERO, y=NM_UE, fill=n)) +
scale_fill_gradient(low="#efedf5", high="#3f007d") +
ggtitle("Número de Candidatos por Município e Gênero") +
xlab("Município") +
ylab("Número de Candidatos") +
theme_classic()
NR_IDADE_DATA_POSSE). Faça qualquer ajuste necessário para que o seu gráfico faça sentido e incorpore valores de idade possíveis. Formate o seu gráfico.resultados_totais_candidatos %>%
mutate(NR_IDADE_DATA_POSSE=case_when(NR_IDADE_DATA_POSSE==999~NA_real_,
TRUE~NR_IDADE_DATA_POSSE)) %>%
ggplot() +
geom_histogram(aes(x=NR_IDADE_DATA_POSSE)) +
ggtitle("Histograma de Candidatos por Idade") +
xlab("Idade") +
ylab("Número de Candidatos") +
theme_classic()
resultados_totais_candidatos %>%
mutate(NR_IDADE_DATA_POSSE=case_when(NR_IDADE_DATA_POSSE==999~NA_real_,
TRUE~NR_IDADE_DATA_POSSE)) %>%
ggplot() +
geom_histogram(aes(x=NR_IDADE_DATA_POSSE, fill=DS_GENERO),
position="dodge") +
ggtitle("Histograma de Candidatos por Idade") +
xlab("Idade") +
ylab("Número de Candidatos") +
theme_classic()
resultados_totais_candidatos %>%
mutate(NR_IDADE_DATA_POSSE=case_when(NR_IDADE_DATA_POSSE==999~NA_real_,
TRUE~NR_IDADE_DATA_POSSE)) %>%
ggplot() +
geom_histogram(aes(x=NR_IDADE_DATA_POSSE, fill=DS_GENERO)) +
ggtitle("Histograma de Candidatos por Idade") +
xlab("Idade") +
ylab("Número de Candidatos") +
theme_classic() +
facet_grid(rows=vars(DS_COR_RACA), cols=vars(DS_GENERO))
candidatos_idade_media_votos %>%
ggplot() +
geom_line(aes(x=NR_IDADE_DATA_POSSE, y=Media_Pct_Votos)) +
ggtitle("Porcentagem de Votos de Candidatos por Idade") +
xlab("Idade") +
ylab("Média de Porcentagem de Votos") +
theme_classic()
candidatos_idade_genero_media_votos <- resultados_totais_candidatos %>%
mutate(NR_IDADE_DATA_POSSE=case_when(NR_IDADE_DATA_POSSE==999~NA_real_,
TRUE~NR_IDADE_DATA_POSSE)) %>%
group_by(DS_GENERO, NR_IDADE_DATA_POSSE) %>%
summarize(Media_Pct_Votos=mean(Pct_Votos,na.rm=T))
candidatos_idade_genero_media_votos %>%
ggplot() +
geom_line(aes(x=NR_IDADE_DATA_POSSE, y=Media_Pct_Votos, group=DS_GENERO, colour=DS_GENERO))
IDH <- tibble(NM_UE=c("ALTO ALEGRE", "AMAJARI", "BOAVISTA", "BONFIM",
"CANTÁ", "CARACARAÍ", "CAROEBE", "IRACEMA", "MUCAJAÍ",
"NORMANDIA", "PACARAIMA", "RORAINOPOLIS",
"SÃO JOÃO DA BALIZA", "SÃO LUIZ", "UIRAMUTÃ"),
IDH=c(0.542, 0.484, 0.752, 0.626, 0.619, 0.624, 0.639, 0.582, 0.665,
0.594, 0.650, 0.619, 0.655, 0.649, 0.453))
anti_join() para verificar se existe um identificador comum e completo para os dois bancos de resultados por partido e IDH. Corrija os erros para que todas as observações possam ser cruzadas.left_join() para juntar os dados de voto por partido de questão (a) com a tabela de IDH de questão (b).resultados_totais_partidos_IDH %>%
filter(SG_PARTIDO=="PMDB") %>%
ggplot() +
geom_point(aes(x=IDH, y=Pct_Votos)) +
ggtitle("IDH do Município e Porcentagem de Votos do PMDB") +
xlab("IDH") +
ylab("Porcentagem de Votos do PMDB") +
theme_classic()
resultados_totais_partidos_IDH %>%
filter(SG_PARTIDO=="PMDB") %>%
ggplot() +
geom_point(aes(x=IDH, y=Pct_Votos, size=Tot_Votos)) +
ggtitle("IDH do Município e Porcentagem de Votos do PMDB") +
xlab("IDH") +
ylab("Porcentagem de Votos do PMDB") +
theme_classic()
resultados_totais_partidos_IDH %>%
filter(SG_PARTIDO=="PMDB") %>%
ggplot() +
geom_point(aes(x=IDH, y=Pct_Votos, colour=Tot_Votos)) +
scale_colour_gradient(low="#fee6ce", high="#a63603") +
ggtitle("IDH do Município e Porcentagem de Votos do PMDB") +
xlab("IDH") +
ylab("Porcentagem de Votos do PMDB") +
theme_classic()