Skip to content

Commit

Permalink
feat: conform br_tse_eleicoes code to DBT tests
Browse files Browse the repository at this point in the history
  • Loading branch information
rdahis committed May 29, 2024
1 parent bfefce1 commit e4d5452
Show file tree
Hide file tree
Showing 15 changed files with 679 additions and 422 deletions.
14 changes: 7 additions & 7 deletions bases/br_tse_eleicoes/code/build.do
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ set varabbrev off

cd "~/Downloads/dados_TSE"

do "code/fnc/clean_string.do"
do "code/fnc/limpa_tipo_eleicao.do"
do "code/fnc/limpa_instrucao.do"
do "code/fnc/limpa_estado_civil.do"
do "code/fnc/limpa_resultado.do"
do "code/fnc/limpa_partido.do"
do "code/fnc/limpa_candidato.do"
do "~/Dropbox/BD/mais/bases/br_tse_eleicoes/code/fnc/clean_string.do"
do "~/Dropbox/BD/mais/bases/br_tse_eleicoes/code/fnc/limpa_tipo_eleicao.do"
do "~/Dropbox/BD/mais/bases/br_tse_eleicoes/code/fnc/limpa_instrucao.do"
do "~/Dropbox/BD/mais/bases/br_tse_eleicoes/code/fnc/limpa_estado_civil.do"
do "~/Dropbox/BD/mais/bases/br_tse_eleicoes/code/fnc/limpa_resultado.do"
do "~/Dropbox/BD/mais/bases/br_tse_eleicoes/code/fnc/limpa_partido.do"
do "~/Dropbox/BD/mais/bases/br_tse_eleicoes/code/fnc/limpa_candidato.do"

//----------------------------------------------------------------------------//
// build
Expand Down
8 changes: 4 additions & 4 deletions bases/br_tse_eleicoes/code/fnc/limpa_instrucao.do
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@
cap program drop limpa_instrucao
program limpa_instrucao

replace instrucao = "ensino fundamental completo" if instrucao == "1º grau completo"
replace instrucao = "ensino fundamental incompleto" if instrucao == "1º grau incompleto"
replace instrucao = "ensino fundamental completo" if instrucao == "primeiro grau completo"
replace instrucao = "ensino fundamental incompleto" if instrucao == "primeiro grau incompleto"
replace instrucao = "ensino fundamental incompleto" if instrucao == "fundamental incompleto"
replace instrucao = "ensino fundamental completo" if instrucao == "1º grau completo"
replace instrucao = "ensino fundamental completo" if instrucao == "primeiro grau completo"
replace instrucao = "ensino fundamental completo" if instrucao == "fundamental completo"
replace instrucao = "ensino medio completo" if instrucao == "2º grau completo"
replace instrucao = "ensino medio incompleto" if instrucao == "2º grau incompleto"
replace instrucao = "ensino medio completo" if instrucao == "segundo grau completo"
replace instrucao = "ensino medio incompleto" if instrucao == "segundo grau incompleto"
replace instrucao = "ensino fundamental completo" if instrucao == "fundamental completo"
replace instrucao = "ensino fundamental incompleto" if instrucao == "fundamental incompleto"
replace instrucao = "ensino medio completo" if instrucao == "medio completo"
replace instrucao = "ensino medio incompleto" if instrucao == "medio incompleto"
replace instrucao = "ensino superior completo" if instrucao == "superior completo"
Expand Down
7 changes: 7 additions & 0 deletions bases/br_tse_eleicoes/code/fnc/limpa_tipo_eleicao.do
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,17 @@ program limpa_tipo_eleicao

replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == ""
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "ordinaria"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes ordinarias - `ano'"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes `ano'"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicao `ano'"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicao municipal `ano'"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes gerais `ano'"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes gerais `ano' primeiro turno"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes gerais `ano' segundo turno"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes municipais de `ano' - 1. turno"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes municipais de `ano' - 2. turno"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes municipais de `ano' - 1 turno"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes municipais de `ano' - 2 turno"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes municipais `ano'"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicoes gerais estaduais `ano'"
replace tipo_eleicao = "eleicao ordinaria" if tipo_eleicao == "eleicao geral federal `ano'"
Expand Down
25 changes: 13 additions & 12 deletions bases/br_tse_eleicoes/code/sub/agregacao.do
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

!mkdir "output/resultados_candidato_municipio"

foreach ano of numlist 2018 { // 1994(2)2022 {
foreach ano of numlist 1994(2)2022 {

!mkdir "output/resultados_candidato_municipio/ano=`ano'"

Expand Down Expand Up @@ -41,7 +41,7 @@ foreach ano of numlist 2018 { // 1994(2)2022 {

!mkdir "output/resultados_partido_municipio"

foreach ano of numlist 2018 { // 1994(2)2022 {
foreach ano of numlist 1994(2)2022 {

!mkdir "output/resultados_partido_municipio/ano=`ano'"

Expand All @@ -67,31 +67,28 @@ foreach ano of numlist 2018 { // 1994(2)2022 {
//---------------------//

use "output/norm_candidatos.dta", clear

keep if mod(ano, 4) == 0
keep id_candidato_bd ano tipo_eleicao sigla_uf id_municipio_tse cargo numero numero_partido sigla_partido

tostring numero numero_partido id_candidato_bd, replace
tempfile candidatos_mod0
save `candidatos_mod0'

use "output/norm_candidatos.dta", clear

keep if mod(ano, 4) == 2 & cargo != "presidente"
keep id_candidato_bd ano tipo_eleicao sigla_uf cargo numero numero_partido sigla_partido

tostring numero numero_partido id_candidato_bd, replace
tempfile candidatos_mod2_estadual
save `candidatos_mod2_estadual'

use "output/norm_candidatos.dta", clear

keep if mod(ano, 4) == 2 & cargo == "presidente"
keep id_candidato_bd ano tipo_eleicao cargo numero numero_partido sigla_partido

tostring numero numero_partido id_candidato_bd, replace
tempfile candidatos_mod2_presid
save `candidatos_mod2_presid'

!mkdir "output/resultados_candidato"
/*

foreach ano of numlist 1945 1947 1955(5)1965 1950(4)1990 1989 {

!mkdir "output/resultados_candidato/ano=`ano'"
Expand All @@ -110,11 +107,15 @@ foreach ano of numlist 1945 1947 1955(5)1965 1950(4)1990 1989 {
collapse (sum) votos, by(turno tipo_eleicao sigla_uf id_municipio id_municipio_tse cargo numero_partido sigla_partido numero_candidato sequencial_candidato id_candidato_bd nome_candidato resultado)
order turno tipo_eleicao sigla_uf id_municipio id_municipio_tse cargo numero_partido sigla_partido numero_candidato sequencial_candidato id_candidato_bd nome_candidato resultado votos

duplicates tag turno tipo_eleicao sigla_uf id_municipio_tse cargo sequencial_candidato numero_candidato nome_candidato, gen(dup)
drop if dup > 0 // TODO: fazer limpeza mais cuidadosa, deletando linhas específicas
drop dup

export delimited "output/resultados_candidato/ano=`ano'/resultados_candidato.csv", replace

}
*/
foreach ano of numlist 2018 { // 1994(2)2022 {

foreach ano of numlist 1994(2)2022 {

!mkdir "output/resultados_candidato/ano=`ano'"

Expand Down Expand Up @@ -187,7 +188,7 @@ foreach ano of numlist 2018 { // 1994(2)2022 {

!mkdir "output/detalhes_votacao_municipio"

foreach ano of numlist 2014(2)2022 { // 1994(2)2022 {
foreach ano of numlist 1994(2)2022 {

!mkdir "output/detalhes_votacao_municipio/ano=`ano'"

Expand Down
16 changes: 8 additions & 8 deletions bases/br_tse_eleicoes/code/sub/candidatos.do
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ local estados_2022 AC AL AM AP BA BR CE DF ES GO MA MG MS MT PA PB PE PI PR RJ R
// loops
//------------------------//

import delimited "input/br_bd_diretorios_brasil_municipio.csv", clear varn(1) encoding("utf-8") stringcols(_all)
import delimited "input/br_bd_diretorios_brasil_municipio.csv", clear varn(1) encoding("utf-8") //stringcols(_all)
keep id_municipio id_municipio_tse
tempfile municipio
save `municipio'

foreach ano of numlist 2022 { // 1994(2)2022 {
foreach ano of numlist 2000 { // 1994(2)2022 {

foreach estado in `estados_`ano'' {

Expand Down Expand Up @@ -902,18 +902,18 @@ foreach ano of numlist 2022 { // 1994(2)2022 {

if `ano' >= 2020 drop in 1

merge m:1 id_municipio_tse using `municipio'
drop if _merge == 2
drop _merge
order id_municipio, b(id_municipio_tse)

//------------------//
// limpa strings
//------------------//

destring ano turno, replace force
destring ano turno id_municipio_tse, replace force
replace sequencial = "" if sequencial == "-1"

merge m:1 id_municipio_tse using `municipio'
drop if _merge == 2
drop _merge
order id_municipio, b(id_municipio_tse)

foreach k of varlist _all {
cap replace `k' = "" if inlist(`k', "#NULO#", "#NULO", "#NE#", "#NE", "##VERIFICAR BASE 1994##", "NÃO DIVULGÁVEL")
}
Expand Down
Loading

0 comments on commit e4d5452

Please sign in to comment.