-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcodigo_tabela_censo.R
More file actions
107 lines (84 loc) · 2.39 KB
/
Copy pathcodigo_tabela_censo.R
File metadata and controls
107 lines (84 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
library(readxl)
library(dplyr)
library(tidyr)
library(zoo)
library(writexl)
# Ler arquivo
dados <- read_excel("C:/Users/aline.ramos/Downloads/tabela10061_br_uf.xlsx",col_names = FALSE)
# Cabeçalho multinível
cab <- dados[4:8, ]
# Preencher vazios horizontalmente
cab <- t(apply(cab, 1, zoo::na.locf, na.rm = FALSE))
cab <- as.data.frame(cab)
# Montar nomes completos
nomes <- apply(cab, 2, function(x){
x <- x[!is.na(x)]
paste(x, collapse = "|")
})
# Dados
base <- dados[-c(1:8,37), ]
names(base) <- nomes
# Primeira coluna = localidade
names(base)[1] <- "localidade"
# Formato longo
base_long <- base %>%
pivot_longer(
cols = -localidade,
names_to = "categoria",
values_to = "populacao"
)
# Separar dimensões
base_final <- base_long %>%
separate(
categoria,
into = c(
"ano",
"nivel_instrucao",
"faixa_etaria",
"sexo",
"raca"
),
sep = "\\|",
fill = "right"
)
base_final
tabela_censo <- base_final %>%
filter(localidade != "Brasil",
nivel_instrucao != "Total",
!faixa_etaria %in% c("Total", "18 a 19 anos"),
sexo != "Total",
raca != "Total")
# lista região
regioes_list <- list(
Norte = data.table(UF = c(
"Amazonas", "Acre", "Amapá", "Pará", "Rondônia", "Roraima", "Tocantins"
)),
Nordeste = data.table(UF = c(
"Paraíba", "Rio Grande do Norte", "Bahia", "Ceará", "Pernambuco",
"Maranhão", "Piauí", "Sergipe", "Alagoas"
)),
Sul = data.table(UF = c(
"Paraná", "Santa Catarina", "Rio Grande do Sul"
)),
Sudeste = data.table(UF = c(
"Espírito Santo", "Minas Gerais", "Rio de Janeiro", "São Paulo"
)),
"Centro-Oeste" = data.table(UF = c(
"Distrito Federal", "Goiás", "Mato Grosso do Sul", "Mato Grosso"
))
) %>%
rbindlist(idcol = "regiao")
tabela_censo <- left_join(tabela_censo,regioes_list,by = c("localidade" = "UF")) %>
mutate(populacao_adj = ifelse(populacao == "-",0,populacao) %>% as.numeric,
no_cor_origem_etnica =
iconv(raca,"UTF-8","ASCII//TRANSLIT") %>%
toupper(),
no_regiao =
iconv(regiao,"UTF-8","ASCII//TRANSLIT") %>%
toupper() %>%
gsub("\\-","_",.)
) %>%
# filter(nivel_instrucao %in% "Superior completo") %>%
setDT
saveRDS(tabela_censo,"data-raw/data_pfgp/base_censo.rds")
#write_xlsx(tabela_censo, "C:/Users/aline.ramos/Documents/tabela_censo.xlsx")