Esse pacote est desatualizado, e existe uma alternativa mais atualizada e sofisticada nesse link.
O pacote rfbCNPJ
baixa e l os arquivos contendo a lista de todas as empresas do Brasil, disponibilizado pela Receita Federal em 15 de dezembro de 2017. So duas tabelas por UF: i) empresas, contendo informaes como CNPJ, nome da empresa e ii) socios, contendo quadro de scios.
Como os arquivos so do tipo fixed width, algumas pessoas podem ter dificuldade para ler e empilhar os arquivos no R. Esse pacote facilita as operaes de download e leitura.
You can install rfbCNPJ from CRAN with:
install.packages("rfbCNPJ")
You can install the latest version of rfbCNPJ
from github with:
# install.packages("devtools")
devtools::install_github("jtrecenti/rfbCNPJ")
Voc pode baixar o arquivo .txt
bruto para cada UF usando o comando
rfb_download()
. Por padro, temos ufs = NULL
, que baixar os arquivos
de todas as UFs. Esses arquivos somam aproximadamente 4.8 GB em disco.
rfb_download(ufs = c("AC", "RR"), path = "caminho/da/pasta")
A partir de uma pasta contendo os arquivos txt, voc pode carregar as bases
de dados rodando rfb_read()
com os caminhos dos arquivos ou rfb_read_dir()
diretamente para ler todos os arquivos da pasta. Certifique-se de que a pasta
que contm os arquivos a serem lidos contm apenas os arquivos baixados
em .txt
.
path <- "caminho/da/pasta"
all_files <- fs::dir_ls(path)
dados <- rfb_read(all_files)
dados <- rfb_read_fir(path) # equivalente
Os dados so carregados numa tabela complexa com duas list-columns.
library(tibble)
print(dados, n = 27)
# A tibble: 27 x 3
file empresa socio
<chr> <list> <list>
1 D71214AC.txt <tibble [15,690 3]> <tibble [26,268 6]>
2 D71214AL.txt <tibble [60,067 3]> <tibble [109,762 6]>
3 D71214AM.txt <tibble [64,306 3]> <tibble [121,095 6]>
4 D71214AP.txt <tibble [15,941 3]> <tibble [28,063 6]>
5 D71214BA.txt <tibble [422,396 3]> <tibble [787,637 6]>
6 D71214CE.txt <tibble [193,654 3]> <tibble [352,841 6]>
7 D71214DF.txt <tibble [194,734 3]> <tibble [368,607 6]>
8 D71214ES.txt <tibble [179,150 3]> <tibble [354,358 6]>
9 D71214GO.txt <tibble [328,524 3]> <tibble [619,810 6]>
10 D71214MA.txt <tibble [123,736 3]> <tibble [201,854 6]>
11 D71214MG.txt <tibble [962,930 3]> <tibble [1,916,405 6]>
12 D71214MS.txt <tibble [102,208 3]> <tibble [189,673 6]>
13 D71214MT.txt <tibble [141,464 3]> <tibble [262,358 6]>
14 D71214PA.txt <tibble [159,079 3]> <tibble [274,004 6]>
15 D71214PB.txt <tibble [79,275 3]> <tibble [138,596 6]>
16 D71214PE.txt <tibble [224,184 3]> <tibble [426,520 6]>
17 D71214PI.txt <tibble [61,627 3]> <tibble [105,008 6]>
18 D71214PR.txt <tibble [708,109 3]> <tibble [1,392,658 6]>
19 D71214RJ.txt <tibble [843,040 3]> <tibble [1,708,931 6]>
20 D71214RN.txt <tibble [80,562 3]> <tibble [150,411 6]>
21 D71214RO.txt <tibble [62,385 3]> <tibble [109,774 6]>
22 D71214RR.txt <tibble [11,908 3]> <tibble [21,737 6]>
23 D71214RS.txt <tibble [670,093 3]> <tibble [1,350,159 6]>
24 D71214SC.txt <tibble [498,511 3]> <tibble [974,351 6]>
25 D71214SE.txt <tibble [63,303 3]> <tibble [114,081 6]>
26 D71214SP.txt <tibble [2,730,412 3]> <tibble [5,585,988 6]>
27 D71214TO.txt <tibble [51,629 3]> <tibble [89,911 6]>
A primeira coluna complexa mostra dados das empresas, e a segunda mostra dados dos scios.
Para carregar uma dessas listas, use tidyr::unnest()
.
Empresas: (nesse caso, dados
representa a base completa da receita).
library(magrittr)
empresas <- dados %>%
dplyr::select(file, empresa) %>%
tidyr::unnest(empresa)
empresas
# A tibble: 9,048,917 x 4
file tipo cnpj nome_empresarial
<chr> <chr> <chr> <chr>
1 D71214AC.txt 01 07398403000180 BOI GORDO AGROPECUARIA COMERCIO E R
2 D71214AC.txt 01 03173169000131 CONSELHO ESCOLAR BOM JESUS
3 D71214AC.txt 01 07399184000153 D & A SOLUCOES INFORMATICA LTDA - ME
4 D71214AC.txt 01 07399188000131 SOCIEDADE AGRICOLA POERINHA
5 D71214AC.txt 01 03300047000169 ASSOCIACAO MAO AMIGA DE PRODUTORES
6 D71214AC.txt 01 04940648000107 ASSOCIACAO DOS PRODUTORES RURAIS E
7 D71214AC.txt 01 04940653000101 CONSELHO ESCOLAR POLO HORTIGRANJEIRO
8 D71214AC.txt 01 04940654000156 CONSELHO ESCOLAR CENTRO EDUCACIONAL
9 D71214AC.txt 01 03301098000105 ASSOCIACAO AGROEXTRATIVISTA SANTOS
10 D71214AC.txt 01 01653480000152 DENEVS - TERCEIRIZACAO LTDA
# ... with 9,048,907 more rows
Scios:
socios <- dados %>%
dplyr::select(file, socio) %>%
tidyr::unnest(socio)
socios
# A tibble: 17,780,860 x 7
file tipo cnpj indicador_cpf_c cpf_cnpj_socio qualificacao nome
<chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 D7121 02 0739 2 NA 49 SELMA
2 D7121 02 0739 2 NA 22 MARCE
3 D7121 02 0317 2 NA 16 MARIA
4 D7121 02 0739 2 NA 49 DILSO
5 D7121 02 0739 2 NA 22 ANGEL
6 D7121 02 0739 2 NA 16 RAIMU
7 D7121 02 0330 2 NA 16 MOISE
8 D7121 02 0494 2 NA 16 RAIMU
9 D7121 02 0494 2 NA 16 MARIA
10 D7121 02 0494 2 NA 16 EUCLI
# ... with 17,780,850 more rows
Voc pode carregar os arquivos binrios diretamente da web usando a funo
rfb_import()
. Essa funo baixa os arquivos binrios diretamente do
Dropbox.
Voc pode baixar usando o parmetro type=
, com as opes "all"
(tibble complexa com list columns), "empresas" (tibble retangular) e
"socios" (tibble retangular).
empresas <- rfb_import("empresas")
Voc tambm pode baixar os dados dos arquivos binrios em .rds
desses links
com arquivos armazenados diretamente no dropbox:
Para ler um desses arquivos, basta rodar
dados <- readRDS("caminho/para/dados.rds")
Voc pode fazer filtros da base por UF. Basta olhar o nome do arquivo
na coluna file
:
dados_com_uf <- dados %>%
dplyr::mutate(uf = stringr::str_extract(file, "([A-Z]{2})(?=\\.txt)"))
MIT