From ce69768969bc56c05a0bb9469f974d538a862fb4 Mon Sep 17 00:00:00 2001 From: Ricardo Dahis Date: Mon, 8 Jan 2024 11:58:58 +1100 Subject: [PATCH] update code for br_tse_eleicoes --- .../code/fnc/limpa_tipo_eleicao.do | 17 +- bases/br_tse_eleicoes/code/sub/agregacao.do | 33 +- .../code/sub/detalhes_votacao_uf.do | 150 ++++++++++ .../br_tse_eleicoes/code/sub/resultados_uf.do | 281 ++++++++++++++++++ 4 files changed, 467 insertions(+), 14 deletions(-) create mode 100644 bases/br_tse_eleicoes/code/sub/detalhes_votacao_uf.do create mode 100644 bases/br_tse_eleicoes/code/sub/resultados_uf.do diff --git a/bases/br_tse_eleicoes/code/fnc/limpa_tipo_eleicao.do b/bases/br_tse_eleicoes/code/fnc/limpa_tipo_eleicao.do index 342428c5d..ade2e2087 100644 --- a/bases/br_tse_eleicoes/code/fnc/limpa_tipo_eleicao.do +++ b/bases/br_tse_eleicoes/code/fnc/limpa_tipo_eleicao.do @@ -4,13 +4,14 @@ program limpa_tipo_eleicao local ano = `1' - 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 `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 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'" + 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 `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 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'" end diff --git a/bases/br_tse_eleicoes/code/sub/agregacao.do b/bases/br_tse_eleicoes/code/sub/agregacao.do index 7d749339c..596c1056e 100644 --- a/bases/br_tse_eleicoes/code/sub/agregacao.do +++ b/bases/br_tse_eleicoes/code/sub/agregacao.do @@ -92,6 +92,28 @@ 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'" + + use "output/resultados_candidato_uf_`ano'.dta", clear + + replace sigla_uf = "" if cargo == "presidente" + gen id_municipio = . + gen id_municipio_tse = . + + cap gen numero_partido = "" + cap gen sequencial_candidato = "" + cap gen numero_candidato = "" + cap gen id_candidato_bd = "" + + 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 + + export delimited "output/resultados_candidato/ano=`ano'/resultados_candidato.csv", replace + +} + foreach ano of numlist 1994(2)2022 { !mkdir "output/resultados_candidato/ano=`ano'" @@ -99,9 +121,9 @@ foreach ano of numlist 1994(2)2022 { use "output/resultados_candidato_municipio_zona_`ano'.dta", clear cap ren sequencial sequencial_candidato - cap ren numero numero_candidato - cap ren nome nome_candidato - cap ren nome_urna nome_urna_candidato + cap ren numero numero_candidato + cap ren nome nome_candidato + cap ren nome_urna nome_urna_candidato ren numero_candidato numero @@ -151,9 +173,8 @@ foreach ano of numlist 1994(2)2022 { replace id_municipio = . if mod(ano, 4) == 2 replace id_municipio_tse = . if mod(ano, 4) == 2 - collapse (sum) votos, by(turno tipo_eleicao sigla_uf id_municipio id_municipio_tse cargo numero_partido sigla_partido sequencial_candidato numero_candidato id_candidato_bd resultado) - - order turno tipo_eleicao sigla_uf id_municipio id_municipio_tse cargo numero_partido sigla_partido numero_candidato sequencial_candidato id_candidato_bd resultado votos + 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 export delimited "output/resultados_candidato/ano=`ano'/resultados_candidato.csv", replace diff --git a/bases/br_tse_eleicoes/code/sub/detalhes_votacao_uf.do b/bases/br_tse_eleicoes/code/sub/detalhes_votacao_uf.do new file mode 100644 index 000000000..0a294b5c6 --- /dev/null +++ b/bases/br_tse_eleicoes/code/sub/detalhes_votacao_uf.do @@ -0,0 +1,150 @@ + +//----------------------------------------------------------------------------// +// build: detalhes votacao +//----------------------------------------------------------------------------// + +//------------------------// +// listas de estados +//------------------------// + +local estados_1933 BR +local estados_1934 BR +local estados_1945 AL AM BA CE DF ES GO MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP "Fernando de Noronha" "Iguacu" "Ponta Pora" +local estados_1947 AL AM AP BA CE DF ES GO GP MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP +local estados_1950 AC AL AM AP BA CE DF ES GO GP MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP +local estados_1954 AC AL AM AP BA CE DF ES GO GP MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP +local estados_1955 BR +local estados_1958 AC AL AM AP BA CE DF ES GO MA MG MT PA PB PE PI PR RB RJ RN RO RS SC SE SP +local estados_1960 BR +local estados_1962 AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RS SC SE SP +local estados_1965 BR +local estados_1966 AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1970 AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1974 AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1978 AC AL AM AP BA CE ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1982 AC AL AM AP BA CE ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1986 AC AL AM AP BA CE DF ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1989 BR +local estados_1990 AC AL AM AP BA CE DF ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP TO + +//------------------------// +// loops +//------------------------// + +foreach ano of numlist 1945 1947 1955(5)1965 1950(4)1990 1989 { // 1933 1934 + + foreach estado in `estados_`ano'' { + + cap import delimited using "input/detalhe_votacao_uf/DETALHE_VOTACAO_UF_`ano'/DETALHE_VOTACAO_UF_`ano'_`estado'.txt", delimiter(";") varn(nonames) stringcols(_all) clear + cap import delimited using "input/detalhe_votacao_uf/DETALHE_VOTACAO_UF_`ano'/DETALHE_VOTACAO_UF_`ano'.txt", delimiter(";") varn(nonames) stringcols(_all) clear + + if `ano' <= 2012 { + + keep v3 v4 v5 v6 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 + + ren v3 ano + ren v4 turno + ren v5 tipo_eleicao + ren v6 sigla_uf + ren v9 cargo + ren v10 aptos + ren v11 comparecimento + ren v12 abstencoes + ren v13 votos_validos + ren v14 votos_brancos + ren v15 votos_nulos + ren v16 votos_legenda + ren v17 votos_anulados_apurado_separado + ren v18 secoes_totalizadas + ren v19 secoes_anuladas + ren v20 secoes_sem_funcionamento + ren v21 zonas_eleitorais + ren v22 juntas_apuradoras + + /* + QTD_VOTOS_ANULADOS_APU_SEP + QTD_SECOES_TOT + QTD_SECOES_ANULADAS + QTD_SECOES_SEM_FUNCION + QTD_ZONAS_ELEITORAIS + QTD_JUNTAS_APURADORAS + */ + + //ren v11 secoes + //ren v15 secoes_agregadas + //ren v16 aptos_totalizadas + //ren v17 secoes_totalizadas + + + } + * + + destring ano turno aptos* secoes* comparecimento abstencoes votos_* zonas* juntas*, replace force + + foreach k of varlist aptos* secoes* comparecimento abstencoes votos_* zonas* juntas* { + + replace `k' = . if `k' == -1 + replace `k' = . if `k' == -3 + + } + * + + //------------------// + // limpa strings + //------------------// + + foreach k in tipo_eleicao cargo { + cap clean_string `k' + } + * + + limpa_tipo_eleicao `ano' + + //------------------// + // variaveis + //------------------// + + gen proporcao_comparecimento = 100 * comparecimento / aptos + la var proporcao_comparecimento "% Comparecimento" + + gen proporcao_votos_validos = 100 * votos_validos / comparecimento + la var proporcao_votos_validos "% Votos VĂ¡lidos" + + gen proporcao_votos_brancos = 100 * votos_brancos / comparecimento + la var proporcao_votos_brancos "% Votos Brancos" + + gen proporcao_votos_nulos = 100 * votos_nulos / comparecimento + la var proporcao_votos_nulos "% Votos Nulos" + + duplicates drop + + compress + + tempfile detalhes_`ano'_`estado' + save `detalhes_`ano'_`estado'' + + } + * + + //------------------// + // append + //------------------// + + local first: word 1 of `estados_`ano'' + use `detalhes_`ano'_`first'', clear + foreach estado in `estados_`ano'' { + if "`estado'" != "`first'" { + append using `detalhes_`ano'_`estado'' + } + } + + order ano turno tipo_eleicao sigla_uf cargo secoes_anuladas secoes_sem_funcionamento zonas_eleitorais juntas_apuradoras votos_anulados_apurado_separado secoes_totalizadas /// + aptos comparecimento abstencoes votos_validos votos_brancos votos_nulos votos_legenda /// + proporcao_* + + compress + + save "output/detalhes_votacao_uf_`ano'.dta", replace + +} +* diff --git a/bases/br_tse_eleicoes/code/sub/resultados_uf.do b/bases/br_tse_eleicoes/code/sub/resultados_uf.do new file mode 100644 index 000000000..5aa5eef90 --- /dev/null +++ b/bases/br_tse_eleicoes/code/sub/resultados_uf.do @@ -0,0 +1,281 @@ + +//----------------------------------------------------------------------------// +// build: resultados municipio-zona +//----------------------------------------------------------------------------// + +//------------------------// +// listas de estados +//------------------------// + +local estados_1933_candidato BR +local estados_1934_candidato BR +local estados_1945_candidato AL AM AP BA CE DF ES GO GP MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP "Fernando de Noronha" "Iguacu" "Ponta Pora" +local estados_1947_candidato AL AM AP BA CE DF ES GO GP MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP +local estados_1950_candidato AC AL AM AP BA CE DF ES GO GP MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP +local estados_1954_candidato AC AL AM AP BA CE DF ES GO GP MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP +local estados_1955_candidato BR +local estados_1958_candidato AC AL AM AP BA CE DF ES GO MA MG MT PA PB PE PI PR RB RJ RN RO RS SC SE SP +local estados_1960_candidato BR +local estados_1962_candidato AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RS SC SE SP +local estados_1965_candidato BR +local estados_1966_candidato AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1970_candidato AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1974_candidato AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1978_candidato AC AL AM AP BA CE ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1982_candidato AC AL AM AP BA CE ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1986_candidato AC AL AM AP BA CE DF ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1989_candidato BR +local estados_1990_candidato AC AL AM AP BA CE DF ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP TO + +local estados_1933_partido BR +local estados_1934_partido BR +local estados_1945_partido AC AL AM BA CE DF ES GO MA MG MT PA PB PE PI PR RJ RN RS SC SE SP +local estados_1947_partido AL AM AP BA CE DF ES GO GP MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP +local estados_1950_partido AC AL AM AP BA CE DF ES GO GP MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP +local estados_1954_partido AC AL AM AP BA CE DF ES GO GP MA MG MT PA PB PE PI PR RB RJ RN RS SC SE SP +local estados_1955_partido BR +local estados_1958_partido AC AL AM AP BA CE DF ES GO MA MG MT PA PB PE PI PR RB RJ RN RO RS SC SE SP +local estados_1960_partido BR +local estados_1962_partido AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RS SC SE SP +local estados_1965_partido BR +local estados_1966_partido AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1970_partido AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1974_partido AC AL AM AP BA CE ES GB GO MA MG MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1978_partido AC AL AM AP BA CE ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1982_partido AC AL AM AP BA CE ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1986_partido AC AL AM AP BA CE DF ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP +local estados_1990_partido AC AL AM AP BA CE DF ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP TO + +//------------------------// +// loops +//------------------------// + +foreach ano of numlist 1945 1947 1955(5)1965 1950(4)1990 1989 { // 1933 1934 + + foreach tipo in candidato partido { + + if "`tipo'" == "candidato" { + + foreach estado in `estados_`ano'_candidato' { + + cap import delimited "input/votacao_candidato_uf/votacao_candidato_uf_`ano'_br/VOTACAO_CANDIDATO_UF_`ano'_`estado'.txt", /// + delim(";") varn(nonames) stringcols(_all) clear + + if `ano' == 1933 | `ano' == 1934 { + drop in 1 + } + + cap import delimited "input/votacao_candidato_uf/VOTACAO_CANDIDATO_`ano'/VOTACAO_CANDIDATO_UF_`ano'_`estado'.txt", /// + delim(";") varn(nonames) stringcols(_all) clear + + cap import delimited "input/votacao_candidato_uf/VOTACAO_CANDIDATO_UF_`ano'/VOTACAO_CANDIDATO_UF_`ano'_`estado'.txt", /// + delim(";") varn(nonames) stringcols(_all) clear + + if `ano' == 1955 | `ano' == 1960 | `ano' == 1965 { + + import delimited "input/votacao_candidato_uf/VOTACAO_CANDIDATO_UF_`ano'/VOTACAO_CANDIDATO_UF_`ano'.txt", /// + delim(";") varn(nonames) stringcols(_all) clear + + keep v3 v4 v5 v6 v11 v13 v19 v21 v24 v25 v26 + + ren v3 ano + ren v4 turno + ren v5 tipo_eleicao + ren v6 sigla_uf + ren v11 nome_candidato + ren v13 cargo + ren v19 resultado + ren v21 sigla_partido + ren v24 coligacao + ren v25 composicao + ren v26 votos + + } + + if `ano' == 1989 { + + cap import delimited "input/votacao_candidato_uf/VOTACAO_CANDIDATO_UF_`ano'/VOTACAO_CANDIDATO_UF_`ano'.txt", /// + delim(";") varn(nonames) stringcols(_all) clear + + keep v3 v4 v5 v6 v9 v11 v13 v19 v20 v21 v24 v25 v26 + + ren v3 ano + ren v4 turno + ren v5 tipo_eleicao + ren v6 sigla_uf + ren v9 numero_candidato + ren v11 nome_candidato + ren v13 cargo + ren v19 resultado + ren v20 numero_partido + ren v21 sigla_partido + ren v24 coligacao + ren v25 composicao + ren v26 votos + + } + + if `ano' == 1933 | `ano' == 1934 | `ano' == 1945 | `ano' == 1947 | (mod(`ano', 4) == 2 & `ano' <= 1982) { + + keep v3 v4 v5 v6 v11 v13 v19 v21 v24 v25 v26 + + ren v3 ano + ren v4 turno + ren v5 tipo_eleicao + ren v6 sigla_uf + ren v11 nome_candidato + ren v13 cargo + ren v19 resultado + ren v21 sigla_partido + ren v24 coligacao + ren v25 composicao + ren v26 votos + + } + + if `ano' == 1986 | `ano' == 1990 { + + keep v3 v4 v5 v6 v9 v11 v13 v19 v20 v21 v24 v25 v26 + + ren v3 ano + ren v4 turno + ren v5 tipo_eleicao + ren v6 sigla_uf + ren v9 numero_candidato + ren v11 nome_candidato + ren v13 cargo + ren v19 resultado + ren v20 numero_partido + ren v21 sigla_partido + ren v24 coligacao + ren v25 composicao + ren v26 votos + + } + + destring ano turno votos, replace force + + //------------------// + // limpa strings + //------------------// + + foreach k of varlist _all { + cap replace `k' = "" if inlist(`k', "#NULO#", "#NULO", "#NE#", "#NE", "#AVULSO#") + } + * + + replace cargo = "SUPLENTE DE SENADOR" if cargo == "SUPLENTE DE SENADOR 1945" + + foreach k in tipo_eleicao cargo resultado { + clean_string `k' + } + foreach k in nome_candidato { + replace `k' = ustrtitle(`k') + } + * + + limpa_tipo_eleicao `ano' + limpa_partido `ano' sigla_partido + limpa_resultado + + cap limpa_candidato + + tempfile resultados_cand_`estado'_`ano' + save `resultados_cand_`estado'_`ano'' + + } + + //------------// + // append + //------------// + + local first: word 1 of `estados_`ano'_candidato' + use `resultados_cand_`first'_`ano'', clear + foreach estado in `estados_`ano'_candidato' { + if "`estado'" != "`first'" { + append using `resultados_cand_`estado'_`ano'' + } + } + * + + //-------------------------// + // salva + //-------------------------// + + order votos, a(resultado) + + compress + + save "output/resultados_candidato_uf_`ano'.dta", replace + + } + + if "`tipo'" == "partido" & `ano' != 1989 { + + foreach estado in `estados_`ano'_partido' { + + cap import delimited "input/votacao_partido_uf/VOTACAO_PARTIDO_UF_`ano'/VOTACAO_PARTIDO_UF_`ano'.txt", /// + delim(";") varn(nonames) stringcols(_all) clear + + cap import delimited "input/votacao_partido_uf/VOTACAO_PARTIDO_UF_`ano'/VOTACAO_PARTIDO_UF_`ano'_`estado'.txt", /// + delim(";") varn(nonames) stringcols(_all) clear + + keep v3 v4 v5 v6 v9 v11 v12 v13 v16 v17 + + ren v3 ano + ren v4 turno + ren v5 tipo_eleicao + ren v6 sigla_uf + ren v9 cargo + ren v11 coligacao + ren v12 composicao + ren v13 sigla_partido + ren v16 votos_nominais + ren v17 votos_nao_nominais + + destring ano turno votos_*, replace force + + //------------------// + // limpa strings + //------------------// + + foreach k of varlist _all { + cap replace `k' = "" if inlist(`k', "#NULO#", "#NULO", "#NE#", "#NE") + } + * + + foreach k in tipo_eleicao cargo { + clean_string `k' + } + + limpa_tipo_eleicao `ano' + limpa_partido `ano' sigla_partido + + //duplicates drop + + tempfile resultados_part_`estado'_`ano' + save `resultados_part_`estado'_`ano'' + + } + + //------------// + // append + //------------// + + local first: word 1 of `estados_`ano'_partido' + use `resultados_part_`first'_`ano'', clear + foreach estado in `estados_`ano'_partido' { + if "`estado'" != "`first'" { + append using `resultados_part_`estado'_`ano'' + } + } + * + + compress + + save "output/resultados_partido_uf_`ano'.dta", replace + + } + + } +}