5.4 Exemplo: formatando arquivos
Vamos agora utilizar o purrr
em conjunto com as outras ferramentas do tidyverse
para trabalhar o projeto da especialização.
Nosso input de dados nesse projeto foi uma planilha enviada pela Corregedoria do TJSP, contendo três abas: infos, partes e movimentações, cada uma delas com suas respectivas colunas. Cada tabela correspondia a um ano: 2013, 2014 ou 2015.
Ao ler esses arquivos, nosso input era uma lista com três elementos, para cada ano: d_infos
, d_movs
e d_partes
. Cada um desses elementos é uma tibble
. Para exemplificar, montamos algumas tabelas de exemplo, com apenas 1000 processos por ano. Elas estão em data-raw/espec
Exercício: o que faz esse código? Dica: leia o arquivo data-raw/espec/d_2014.rds
, guarde num objeto d_2014
e use o elemento d_2014$d_movs
nessa função.
nest_infos <- function(.data, name) {
.data %>%
# o que faz isso?
rename(id_lawsuit = n_processo) %>%
# o que faz isso?
group_by(id_lawsuit) %>%
# o que faz isso? que raios são esses `!!` ?!
nest(.key = !!name) %>%
# o que faz isso?
ungroup()
}
Exercício: o que faz esse código?
file_to_cpo <- function(arq) {
arq %>%
# o que faz isso?
read_rds() %>%
# o que faz isso?
imap(nest_infos) %>%
# o que faz isso?
reduce(left_join, by = "id_lawsuit")
}
Exercício: como você faria para montar a base de dados com esse código? Dica: você primeiro precisa listar os arquivos, aplicar funções a eles e por fim empilhar. O resultado deve ser uma tibble
com 30000 linhas e 3 list columns
# escreva código aqui