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. São duas tabelas por UF: i) empresas, contendo informações como CNPJ, nome da empresa e ii) socios, contendo quadro de sócios.
Como os arquivos são do tipo fixed width, algumas pessoas podem ter dificuldade para ler e empilhar os arquivos no R. Esse pacote facilita as operações 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 padrão, 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 contém os arquivos a serem lidos contém 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 são 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 sócios.
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
Sócios:
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 binários diretamente da web usando a função
rfb_import()
. Essa função baixa os arquivos binários diretamente do
Dropbox.
Você pode baixar usando o parâmetro type=
, com as opções "all"
(tibble complexa com list columns), "empresas" (tibble retangular) e
"socios" (tibble retangular).
empresas <- rfb_import("empresas")
Você também pode baixar os dados dos arquivos binários 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
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.