Site icon R-bloggers

New Packages: GetDFPdata = GetDFPData2 + GetFREData

[This article was first published on R | msperlin, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Back in 2017 I wrote the first version of package GetDFPData, along with a paper describing the code and providing an empirical application.

However, maintaining the package over the years has been frustrating. The code is becoming increasingly complex, much due to the fact that it handles FRE and DFP data in a single package. Execution speed for large scale importation – many years and many companies – is not reasonable. In top of that, B3’s website is unstable as a source of data and it seems it will stay like that for a long time.

Additionally, back in april 2020 (see this blog post), I started to work with CVM data from its ftp site. The experience has been great. The data is solid, matching all B3’s numbers, with easy and fast access. For example, I can download 10 years of financial data for all available companies in less than 10 minutes.

After some considerable thought, I’m convinced that is much easier to maintain two separate packages, instead of combining both in a single module such as in GetDFPData. With that, I’m releasing two new packages: GetDFPData2, and GetFREData.

The first, GetDFPData2 (previously called GetCVMData), is a backwards incompatible version of GetDFPData, using the CVM ftp site as it source and focusing in one purpose: downloading annual and quarterly financial reports. The second, GetFREData only imports corporate data from the FRE system.

Installation

# not in CRAN, install from github
devtools::install_github('msperlin/GetDFPData2')
# not in CRAN, install from github
devtools::install_github('msperlin/GetFREData')

Examples of Usage

GetDFPData2

library(GetDFPData2)
library(tidyverse)

# information about companies
df_info <- get_info_companies(tempdir())
df_info 
## # A tibble: 2,264 x 44
##    CD_CVM DENOM_SOCIAL DENOM_COMERC SETOR_ATIV PF_PJ CNPJ  DT_REG DT_CONST
##     <dbl> <chr>        <chr>        <chr>      <chr> <chr> <chr>  <chr>   
##  1  21954 3A COMPANHI… TRIPLO A  C… SECURITIZ… PJ    1139… 08/03… 03/11/2…
##  2  16330 521 PARTICI… 521 PARTICI… Emp. Adm.… PJ    1547… 11/07… 30/07/1…
##  3  16284 524 PARTICI… 524 PARTICI… Emp. Adm.… PJ    1851… 30/05… 02/04/1…
##  4  16349 525 PARTICI… 525 PARTICI… Emp. Adm.… PJ    1919… 16/07… 02/04/1…
##  5     35 A J RENNER … A J RENNER   EMP. ADM.… PJ    9265… 24/06… <NA>    
##  6  16802 A.P. PARTIC… A.P. PARTIC… EMP. ADM.… PJ    2288… 21/01… 14/12/1…
##  7  24732 AAJR SECURI… AAJR SECURI… SECURITIZ… PJ    3190… 03/06… 22/08/2…
##  8  13307 ABC DADOS E… ABC COMPUTA… Máquinas,… PJ    2164… 03/06… <NA>    
##  9  16934 ABC SUPERME… ABC SUPERME… COMÉRCIO … PJ    2258… 27/02… 30/09/1…
## 10  13005 ABC XTAL MI… XTAL         Máquinas,… PJ    4227… 15/09… <NA>    
## # … with 2,254 more rows, and 36 more variables: DT_CANCEL <chr>,
## #   MOTIVO_CANCEL <chr>, SIT_REG <chr>, DT_INI_SIT <chr>, SIT_EMISSOR <chr>,
## #   DT_INI_SIT_EMISSOR <chr>, CATEG_REG <chr>, DT_INI_CATEG <chr>,
## #   AUDITOR <chr>, CNPJ_AUDITOR <dbl>, TP_ENDER <chr>, LOGRADOURO <chr>,
## #   COMPL <chr>, BAIRRO <chr>, CIDADE <chr>, UF <chr>, PAIS <chr>,
## #   CD_POSTAL <lgl>, TEL <chr>, FAX <chr>, EMAIL <chr>, TP_RESP <chr>,
## #   RESP <chr>, DT_INI_RESP <chr>, LOGRADOURO_RESP <chr>, COMPL_RESP <chr>,
## #   BAIRRO_RESP <chr>, CIDADE_RESP <chr>, UF_RESP <chr>, PAIS_RESP <chr>,
## #   CEP_RESP <dbl>, TEL_RESP <chr>, FAX_RESP <chr>, EMAIL_RESP <chr>,
## #   TP_MERC <chr>, cnpj_number <dbl>
search_company('grendene')
## # A tibble: 1 x 44
##   CD_CVM DENOM_SOCIAL DENOM_COMERC SETOR_ATIV PF_PJ CNPJ  DT_REG DT_CONST
##    <dbl> <chr>        <chr>        <chr>      <chr> <chr> <chr>  <chr>   
## 1  19615 GRENDENE SA  GRENDENE SA  TEXTIL E … PJ    8985… 26/10… 25/02/1…
## # … with 36 more variables: DT_CANCEL <chr>, MOTIVO_CANCEL <chr>,
## #   SIT_REG <chr>, DT_INI_SIT <chr>, SIT_EMISSOR <chr>,
## #   DT_INI_SIT_EMISSOR <chr>, CATEG_REG <chr>, DT_INI_CATEG <chr>,
## #   AUDITOR <chr>, CNPJ_AUDITOR <dbl>, TP_ENDER <chr>, LOGRADOURO <chr>,
## #   COMPL <chr>, BAIRRO <chr>, CIDADE <chr>, UF <chr>, PAIS <chr>,
## #   CD_POSTAL <lgl>, TEL <chr>, FAX <chr>, EMAIL <chr>, TP_RESP <chr>,
## #   RESP <chr>, DT_INI_RESP <chr>, LOGRADOURO_RESP <chr>, COMPL_RESP <chr>,
## #   BAIRRO_RESP <chr>, CIDADE_RESP <chr>, UF_RESP <chr>, PAIS_RESP <chr>,
## #   CEP_RESP <dbl>, TEL_RESP <chr>, FAX_RESP <chr>, EMAIL_RESP <chr>,
## #   TP_MERC <chr>, cnpj_number <dbl>
# downloading DFP data
l_dfp <- get_dfp_data(companies_cvm_codes = 19615, 
                      use_memoise = FALSE,
                      clean_data = TRUE,
                      type_docs = c('DRE'), 
                      type_format = 'con',
                      first_year = 2010, 
                      last_year = 2020)
## Error in utils::download.file(url = dl_link, destfile = dest_file, method = "wget",  : 
##   'wget' call had nonzero exit status
## Error in utils::download.file(url = dl_link, destfile = dest_file, method = "wget",  : 
##   'wget' call had nonzero exit status
## Error in utils::download.file(url = dl_link, destfile = dest_file, method = "wget",  : 
##   'wget' call had nonzero exit status
## Error in utils::download.file(url = dl_link, destfile = dest_file, method = "wget",  : 
##   'wget' call had nonzero exit status
## Error in utils::download.file(url = dl_link, destfile = dest_file, method = "wget",  : 
##   'wget' call had nonzero exit status
## Error in utils::download.file(url = dl_link, destfile = dest_file, method = "wget",  : 
##   'wget' call had nonzero exit status
## Error in utils::download.file(url = dl_link, destfile = dest_file, method = "wget",  : 
##   'wget' call had nonzero exit status
## Error in utils::download.file(url = dl_link, destfile = dest_file, method = "wget",  : 
##   'wget' call had nonzero exit status
## Error in utils::download.file(url = dl_link, destfile = dest_file, method = "wget",  : 
##   'wget' call had nonzero exit status
## Error in utils::download.file(url = dl_link, destfile = dest_file, method = "wget",  : 
##   'wget' call had nonzero exit status
## Warning in utils::unzip(zipfile = dest_file, exdir = unzip_dir, junkpaths =
## TRUE): error 1 in extracting from zip file
glimpse(l_dfp)
## List of 1
##  $ DF Consolidado - Demonstração do Resultado: tibble [250 × 16] (S3: tbl_df/tbl/data.frame)
##   ..$ CNPJ_CIA    : chr [1:250] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" ...
##   ..$ CD_CVM      : num [1:250] 19615 19615 19615 19615 19615 ...
##   ..$ DT_REFER    : Date[1:250], format: "2010-12-31" "2010-12-31" ...
##   ..$ DT_INI_EXERC: Date[1:250], format: "2010-01-01" "2010-01-01" ...
##   ..$ DT_FIM_EXERC: Date[1:250], format: "2010-12-31" "2010-12-31" ...
##   ..$ DENOM_CIA   : chr [1:250] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." ...
##   ..$ VERSAO      : num [1:250] 2 2 2 2 2 2 2 2 2 2 ...
##   ..$ GRUPO_DFP   : chr [1:250] "DF Consolidado - Demonstração do Resultado" "DF Consolidado - Demonstração do Resultado" "DF Consolidado - Demonstração do Resultado" "DF Consolidado - Demonstração do Resultado" ...
##   ..$ MOEDA       : chr [1:250] "REAL" "REAL" "REAL" "REAL" ...
##   ..$ ESCALA_MOEDA: chr [1:250] "MILHAR" "MILHAR" "MILHAR" "MILHAR" ...
##   ..$ ORDEM_EXERC : chr [1:250] "ÚLTIMO" "ÚLTIMO" "ÚLTIMO" "ÚLTIMO" ...
##   ..$ CD_CONTA    : chr [1:250] "3.01" "3.02" "3.03" "3.04" ...
##   ..$ DS_CONTA    : chr [1:250] "Receita de Venda de Bens e/ou Serviços" "Custo dos Bens e/ou Serviços Vendidos" "Resultado Bruto" "Despesas/Receitas Operacionais" ...
##   ..$ VL_CONTA    : num [1:250] 1604507 -953261 651246 -442833 -377010 ...
##   ..$ COLUNA_DF   : logi [1:250] NA NA NA NA NA NA ...
##   ..$ source_file : chr [1:250] "dre_cia_aberta_con_2010.csv" "dre_cia_aberta_con_2010.csv" "dre_cia_aberta_con_2010.csv" "dre_cia_aberta_con_2010.csv" ...
dre_annual <- l_dfp$`DF Consolidado - Demonstração do Resultado`

p <- ggplot(dre_annual %>%
              filter(DS_CONTA == 'Lucro/Prejuízo Consolidado do Período'), 
            aes(x = DT_REFER, y = VL_CONTA)) + 
  geom_col() +
  facet_wrap(~DENOM_CIA, scales = 'free') + 
  theme_bw()

p

GetFREData

library(GetFREData)
library(tidyverse)

search_company('grendene')
## # A tibble: 1 x 44
##   CD_CVM DENOM_SOCIAL DENOM_COMERC SETOR_ATIV PF_PJ CNPJ  DT_REG DT_CONST
##    <dbl> <chr>        <chr>        <chr>      <chr> <chr> <chr>  <chr>   
## 1  19615 GRENDENE SA  GRENDENE SA  TEXTIL E … PJ    8985… 26/10… 25/02/1…
## # … with 36 more variables: DT_CANCEL <chr>, MOTIVO_CANCEL <chr>,
## #   SIT_REG <chr>, DT_INI_SIT <chr>, SIT_EMISSOR <chr>,
## #   DT_INI_SIT_EMISSOR <chr>, CATEG_REG <chr>, DT_INI_CATEG <chr>,
## #   AUDITOR <chr>, CNPJ_AUDITOR <dbl>, TP_ENDER <chr>, LOGRADOURO <chr>,
## #   COMPL <chr>, BAIRRO <chr>, CIDADE <chr>, UF <chr>, PAIS <chr>,
## #   CD_POSTAL <lgl>, TEL <chr>, FAX <chr>, EMAIL <chr>, TP_RESP <chr>,
## #   RESP <chr>, DT_INI_RESP <chr>, LOGRADOURO_RESP <chr>, COMPL_RESP <chr>,
## #   BAIRRO_RESP <chr>, CIDADE_RESP <chr>, UF_RESP <chr>, PAIS_RESP <chr>,
## #   CEP_RESP <dbl>, TEL_RESP <chr>, FAX_RESP <chr>, EMAIL_RESP <chr>,
## #   TP_MERC <chr>, cnpj_number <dbl>
l_fre <- get_fre_data(companies_cvm_codes = 19615,
                      fre_to_read = 'last',
                      first_year = 2018,
                      last_year = 2020)

glimpse(l_fre)
## List of 21
##  $ df_stockholders            :'data.frame': 20 obs. of  18 variables:
##   ..$ CNPJ_CIA               : chr [1:20] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" ...
##   ..$ DENOM_CIA              : chr [1:20] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." ...
##   ..$ DT_REFER               : Date[1:20], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM                 : num [1:20] 19615 19615 19615 19615 19615 ...
##   ..$ ID_DOC                 : num [1:20] 83396 83396 83396 83396 83396 ...
##   ..$ VERSAO                 : num [1:20] 16 16 16 16 16 16 16 16 16 16 ...
##   ..$ type.register          : chr [1:20] "Acionista" "Acionista" "Acionista" "Acionista" ...
##   ..$ id.person              : chr [1:20] "37071813833   " "09867597087   " "09864784072   " "68595743053   " ...
##   ..$ id.nationality         : chr [1:20] "Brasileira" "Brasileiro" "Brasileiro" "Brasileiro" ...
##   ..$ id.state               : chr [1:20] "São Paulo" "Rio Grande do Sul" "Rio Grande do Sul" "Rio Grande do Sul" ...
##   ..$ id.country             : logi [1:20] NA NA NA NA NA NA ...
##   ..$ name.stockholder       : chr [1:20] "Gabriella de Camargo Bartelle" "Alexandre Grendene Bartelle" "Pedro Grendene Bartelle" "Pedro Bartelle" ...
##   ..$ type.stockholder       : chr [1:20] "Fisica" "Fisica" "Fisica" "Fisica" ...
##   ..$ qtd.ord.shares         : chr [1:20] "28912677" "371651807" "125312376" "36465597" ...
##   ..$ perc.ord.shares        : chr [1:20] "3.200000" "41.200000" "13.890000" "4.040000" ...
##   ..$ qtd.pref.shares        : chr [1:20] "0" "0" "0" "0" ...
##   ..$ perc.pref.shares       : chr [1:20] "0.000000" "0.000000" "0.000000" "0.000000" ...
##   ..$ controlling.stockholder: logi [1:20] TRUE TRUE TRUE TRUE TRUE TRUE ...
##  $ df_capital                 :'data.frame': 4 obs. of  9 variables:
##   ..$ CNPJ_CIA   : chr [1:4] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60"
##   ..$ DENOM_CIA  : chr [1:4] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A."
##   ..$ DT_REFER   : Date[1:4], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM     : num [1:4] 19615 19615 19615 19615
##   ..$ ID_DOC     : num [1:4] 83396 83396 94693 94693
##   ..$ VERSAO     : num [1:4] 16 16 18 18
##   ..$ stock.type : chr [1:4] "ON" "PN" "ON" "PN"
##   ..$ stock.class: chr [1:4] "0" "0" "0" "0"
##   ..$ qtd.issued : num [1:4] 9.02e+08 0.00 9.02e+08 0.00
##  $ df_stock_values            :'data.frame': 4 obs. of  13 variables:
##   ..$ CNPJ_CIA              : chr [1:4] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60"
##   ..$ DENOM_CIA             : chr [1:4] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A."
##   ..$ DT_REFER              : Date[1:4], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM                : num [1:4] 19615 19615 19615 19615
##   ..$ ID_DOC                : num [1:4] 83396 83396 94693 94693
##   ..$ VERSAO                : num [1:4] 16 16 18 18
##   ..$ stock.class           : chr [1:4] "0" "0" "0" "0"
##   ..$ stock.type            : chr [1:4] "ON" "PN" "ON" "PN"
##   ..$ max.price             : num [1:4] 28.8 0 8.24 0
##   ..$ min.price             : num [1:4] 25.32 0 6.59 0
##   ..$ avg.price             : num [1:4] 26.7 0 7.6 0
##   ..$ flag.missing.avg.price: logi [1:4] FALSE NA FALSE NA
##   ..$ qtd.issued            : num [1:4] 9.02e+08 0.00 9.02e+08 0.00
##  $ df_mkt_value               :'data.frame': 2 obs. of  9 variables:
##   ..$ CNPJ_CIA     : chr [1:2] "89.850.341/0001-60" "89.850.341/0001-60"
##   ..$ DENOM_CIA    : chr [1:2] "GRENDENE S.A." "GRENDENE S.A."
##   ..$ DT_REFER     : Date[1:2], format: "2018-01-01" "2019-01-01"
##   ..$ CD_CVM       : num [1:2] 19615 19615
##   ..$ ID_DOC       : num [1:2] 83396 94693
##   ..$ VERSAO       : num [1:2] 16 18
##   ..$ mkt.avg.value: num [1:2] 2.41e+10 6.86e+09
##   ..$ mkt.min.value: num [1:2] 2.28e+10 5.95e+09
##   ..$ mkt.max.value: num [1:2] 2.60e+10 7.43e+09
##  $ df_increase_capital        :'data.frame': 0 obs. of  0 variables
##  $ df_capital_reduction       :'data.frame': 0 obs. of  0 variables
##  $ df_compensation            :'data.frame': 2 obs. of  22 variables:
##   ..$ CNPJ_CIA                          : chr [1:2] "89.850.341/0001-60" "89.850.341/0001-60"
##   ..$ DENOM_CIA                         : chr [1:2] "GRENDENE S.A." "GRENDENE S.A."
##   ..$ DT_REFER                          : Date[1:2], format: "2018-01-01" "2019-01-01"
##   ..$ CD_CVM                            : num [1:2] 19615 19615
##   ..$ ID_DOC                            : num [1:2] 83396 94693
##   ..$ VERSAO                            : num [1:2] 16 18
##   ..$ level.remuneration                : chr [1:2] "Management Council" "Management Council"
##   ..$ qtd.members                       : num [1:2] 6 6
##   ..$ qtd.remunerated.members           : num [1:2] 6 6
##   ..$ total.value.remuneration          : num [1:2] 1116000 1146000
##   ..$ fixed.salary                      : num [1:2] 1116000 1146000
##   ..$ fixed.benefits                    : num [1:2] 0 0
##   ..$ fixed.participations              : num [1:2] 0 0
##   ..$ fixed.others                      : num [1:2] 0 0
##   ..$ variable.bonus                    : num [1:2] 0 0
##   ..$ variable.results.participation    : num [1:2] 0 0
##   ..$ variable.meetings.participation   : num [1:2] 0 0
##   ..$ variable.commissions.participation: num [1:2] 0 0
##   ..$ variable.others                   : num [1:2] 0 0
##   ..$ post.job.compensation             : num [1:2] 0 0
##   ..$ ceasing.job.compensation          : num [1:2] 0 0
##   ..$ stocks.options.benefits           : num [1:2] 0 0
##  $ df_compensation_summary    :'data.frame': 6 obs. of  13 variables:
##   ..$ CNPJ_CIA               : chr [1:6] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" ...
##   ..$ DENOM_CIA              : chr [1:6] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." ...
##   ..$ DT_REFER               : Date[1:6], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM                 : num [1:6] 19615 19615 19615 19615 19615 ...
##   ..$ ID_DOC                 : num [1:6] 83396 83396 83396 94693 94693 ...
##   ..$ VERSAO                 : num [1:6] 16 16 16 18 18 18
##   ..$ level.remuneration     : chr [1:6] "Management Council" "Statutory Directors" "Fiscal Council" "Management Council" ...
##   ..$ qtd.members            : num [1:6] 6 3 3 6 3 3
##   ..$ qtd.remunerated.members: num [1:6] 6 3 3 6 3 3
##   ..$ max.remuneration       : num [1:6] 186000 2748408 142500 191000 2876477 ...
##   ..$ mean.remuneration      : num [1:6] 186000 2050482 142500 191000 2134281 ...
##   ..$ min.remuneration       : num [1:6] 186000 1423997 142500 191000 1468768 ...
##   ..$ observations           : logi [1:6] NA NA NA NA NA NA
##  $ df_transactions_related    :'data.frame': 86 obs. of  17 variables:
##   ..$ CNPJ_CIA                      : chr [1:86] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" ...
##   ..$ DENOM_CIA                     : chr [1:86] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." ...
##   ..$ DT_REFER                      : Date[1:86], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM                        : num [1:86] 19615 19615 19615 19615 19615 ...
##   ..$ ID_DOC                        : num [1:86] 83396 83396 83396 83396 83396 ...
##   ..$ VERSAO                        : num [1:86] 16 16 16 16 16 16 16 16 16 16 ...
##   ..$ id.transaction                : chr [1:86] "2403" "2404" "2405" "2406" ...
##   ..$ name.related.part             : chr [1:86] "Mailson da Nóbrega Consultoria S/C Ltda" "Vulcabras|Azaleia Argentina S.A." "Mailson da Nóbrega Consultoria S/C Ltda" "Grendene USA, Inc" ...
##   ..$ date.transaction              : Date[1:86], format: "2016-12-31" "2015-12-31" ...
##   ..$ description.related.part      : chr [1:86] "Empresa pertencente a membro do Conselho de Administração" "Empresa controlada por acionista da Grendene S.A." "Empresa pertencente a membro do Conselho de Administração" "Empresa controlada" ...
##   ..$ description.transaction       : chr [1:86] "Assessoria na área econômica financeira" "Cliente - venda de insumos" "Assessoria na área econômica financeira" "Cliente - venda de calçados para abastecimento do mercado onde a mesma está sediada" ...
##   ..$ value.transaction             : chr [1:86] "72000.00" "306000.00" "72000.00" "14641000.00" ...
##   ..$ description.guarantees        : chr [1:86] "Não aplicável" "Não aplicável" "Não aplicável" "Não aplicável" ...
##   ..$ description.transaction.period: chr [1:86] "Prazo indeterminado" "Prazo indeterminado" "Prazo indeterminado" "Prazo indeterminado" ...
##   ..$ description.rescision         : chr [1:86] "Encerramento das atividades" "Encerramento das atividades" "Encerramento das atividades" "Encerramento das atividades" ...
##   ..$ interest.rate                 : num [1:86] 0 0 0 0 0 0 0 0 0 0 ...
##   ..$ value.balance                 : chr [1:86] "R$0,00" "R$0,00" "R$0,00" "R$9.311.000,00" ...
##  $ df_other_events            :'data.frame': 2 obs. of  12 variables:
##   ..$ CNPJ_CIA              : chr [1:2] "89.850.341/0001-60" "89.850.341/0001-60"
##   ..$ DENOM_CIA             : chr [1:2] "GRENDENE S.A." "GRENDENE S.A."
##   ..$ DT_REFER              : Date[1:2], format: "2018-01-01" "2019-01-01"
##   ..$ CD_CVM                : num [1:2] 19615 19615
##   ..$ ID_DOC                : num [1:2] 83396 94693
##   ..$ VERSAO                : num [1:2] 16 18
##   ..$ approval.date         : Date[1:2], format: "2018-04-23" "2018-04-23"
##   ..$ type.event            : chr [1:2] "Desdobramento" "Desdobramento"
##   ..$ qtd.ord.shares.before : num [1:2] 3.01e+08 3.01e+08
##   ..$ qtd.ord.shares.after  : num [1:2] 9.02e+08 9.02e+08
##   ..$ qtd.pref.shares.before: num [1:2] 0 0
##   ..$ qtd.pref.shares.after : num [1:2] 0 0
##  $ df_stock_repurchases       :'data.frame': 8 obs. of  16 variables:
##   ..$ CNPJ_CIA                     : chr [1:8] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" ...
##   ..$ DENOM_CIA                    : chr [1:8] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." ...
##   ..$ DT_REFER                     : Date[1:8], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM                       : num [1:8] 19615 19615 19615 19615 19615 ...
##   ..$ ID_DOC                       : num [1:8] 83396 83396 83396 83396 94693 ...
##   ..$ VERSAO                       : num [1:8] 16 16 16 16 18 18 18 18
##   ..$ date.decision                : Date[1:8], format: "2017-07-27" "2016-02-25" ...
##   ..$ date.start.repurchase        : Date[1:8], format: "2017-08-25" "2016-02-26" ...
##   ..$ date.end.repurchase          : Date[1:8], format: "2019-02-21" "2017-08-24" ...
##   ..$ available.capital.repurchase : num [1:8] 14563536 16117227 17000000 19072706 29188481 ...
##   ..$ type.stock                   : chr [1:8] "Ordinária" "Ordinária" "Ordinária" "Ordinária" ...
##   ..$ qtd.stocks.repurchased       : num [1:8] 1312343 547841 0 487096 130000 ...
##   ..$ qtd.stocks.predicted         : num [1:8] 2000000 1500000 1500000 1500000 6000000 2000000 1500000 1500000
##   ..$ average.price                : num [1:8] 26.78 17.96 0 14.38 7.36 ...
##   ..$ percent.stock.float.purchased: num [1:8] 65.6 36.5 0 32.47 2.17 ...
##   ..$ percent.stock.float.predicted: chr [1:8] "2.380000" "1.820000" "1.910000" "1.950000" ...
##  $ df_debt_composition        :'data.frame': 4 obs. of  13 variables:
##   ..$ CNPJ_CIA               : chr [1:4] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60"
##   ..$ DENOM_CIA              : chr [1:4] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A."
##   ..$ DT_REFER               : Date[1:4], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM                 : num [1:4] 19615 19615 19615 19615
##   ..$ ID_DOC                 : num [1:4] 83396 83396 94693 94693
##   ..$ VERSAO                 : num [1:4] 16 16 18 18
##   ..$ type.debt              : chr [1:4] "Empréstimo" "Financiamento" "Empréstimo" "Financiamento"
##   ..$ type.debt.guarantee    : chr [1:4] "Garantia Real" "Quirografárias" "Garantia Real" "Quirografárias"
##   ..$ debt.value.under.1.year: num [1:4] 1.08e+07 3.11e+08 1.07e+07 3.56e+08
##   ..$ debt.value.1.to.3.years: num [1:4] 31389447 2412999 20681054 6930075
##   ..$ debt.value.3.to.5.years: num [1:4] 0 2522127 0 1194397
##   ..$ debt.value.more.5.years: num [1:4] 0 0 0 0
##   ..$ debt.total             : num [1:4] 4.22e+07 3.16e+08 3.14e+07 3.64e+08
##  $ df_board_composition       :'data.frame': 31 obs. of  22 variables:
##   ..$ CNPJ_CIA                : chr [1:31] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" ...
##   ..$ DENOM_CIA               : chr [1:31] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." ...
##   ..$ DT_REFER                : Date[1:31], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM                  : num [1:31] 19615 19615 19615 19615 19615 ...
##   ..$ ID_DOC                  : num [1:31] 83396 83396 83396 83396 83396 ...
##   ..$ VERSAO                  : num [1:31] 16 16 16 16 16 16 16 16 16 16 ...
##   ..$ person.name             : chr [1:31] "Gelson Luis Rostirolla" "Rudimar Dall Onder" "Francisco Olinto Velo Schmitt" "Alexandre Grendene Bartelle" ...
##   ..$ person.cpf              : num [1:31] 1.48e+10 2.55e+10 2.64e+10 9.87e+09 4.30e+09 ...
##   ..$ person.profession       : chr [1:31] "Administrador de Empresas" "Engenheiro Mecânico" "Engenheiro Elétrico" "Industrial" ...
##   ..$ person.cv               : chr [1:31] "Formação: Administração de Empresas (1977) e Ciências Contábeis (1979) pela UNOESC – Universidade do Oeste Cata"| __truncated__ "Formação: Engenharia Mecânica (1981) pela Universidade de Caxias do SUL (UCS). Iniciou suas atividades na Compa"| __truncated__ "Formação: Engenharia Elétrica pela Universidade Federal do Rio Grande do Sul em 1978; Especialização e Mestrado"| __truncated__ "Fundador da Companhia e Presidente do Conselho de Administração desde 18 de agosto de 2004. \n\nFormação: Bacha"| __truncated__ ...
##   ..$ person.dob              : Date[1:31], format: NA NA ...
##   ..$ code.type.board         : chr [1:31] "1" "1" "1" "2" ...
##   ..$ desc.type.board         : chr [1:31] "Director" "Director" "Director" "Management Council" ...
##   ..$ desc.type.board2        : logi [1:31] NA NA NA NA NA NA ...
##   ..$ code.type.job           : chr [1:31] "11" "10" "12" "20" ...
##   ..$ desc.job                : chr [1:31] "Não ocupa outras funções no emissor." "Não ocupa outras funções no emissor." "Diretor Administrativo Financeiro" "Presidente do comitê de gestão do programa de stock option." ...
##   ..$ date.election           : Date[1:31], format: "2019-02-14" "2019-02-14" ...
##   ..$ date.effective          : Date[1:31], format: "2019-02-14" "2019-02-14" ...
##   ..$ mandate.duration        : chr [1:31] "3 anos" "3 anos" "3 anos" "2 anos" ...
##   ..$ ellected.by.controller  : logi [1:31] TRUE TRUE TRUE TRUE TRUE TRUE ...
##   ..$ qtd.consecutive.mandates: num [1:31] 6 6 5 8 8 8 8 8 7 9 ...
##   ..$ percentage.participation: num [1:31] 0 0 0 100 100 100 100 100 100 0 ...
##  $ df_committee_composition   :'data.frame': 11 obs. of  22 variables:
##   ..$ CNPJ_CIA                : chr [1:11] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" ...
##   ..$ DENOM_CIA               : chr [1:11] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." ...
##   ..$ DT_REFER                : Date[1:11], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM                  : num [1:11] 19615 19615 19615 19615 19615 ...
##   ..$ ID_DOC                  : num [1:11] 83396 83396 83396 94693 94693 ...
##   ..$ VERSAO                  : num [1:11] 16 16 16 18 18 18 18 18 18 18 ...
##   ..$ person.name             : chr [1:11] "Alexandre Grendene Bartelle" "Pedro Grendene Bartelle" "Renato Ochman" "Pedro Grendene Bartelle" ...
##   ..$ person.cpf              : num [1:11] 9.87e+09 9.86e+09 3.76e+10 9.86e+09 9.86e+09 ...
##   ..$ person.profession       : chr [1:11] "Industrial" "Industrial" "Advogado" "Industrial" ...
##   ..$ person.cv               : chr [1:11] "Fundador da Companhia e Presidente do Conselho de Administração desde 18 de agosto de 2004. \n\nFormação: Bacha"| __truncated__ "Fundador da Companhia. Vice-Presidente do Conselho de Administração desde 18 de agosto de 2004. \n\nFormação: B"| __truncated__ "Membro do Conselho de Administração desde 18 de agosto de 2004. \n\nFormação: Advogado, Bacharel em Direito pel"| __truncated__ NA ...
##   ..$ person.dob              : Date[1:11], format: NA NA ...
##   ..$ code.type.committee     : chr [1:11] "9" "9" "9" "9" ...
##   ..$ desc.type.committee     : chr [1:11] "Other Committee" "Other Committee" "Other Committee" "Other Committee" ...
##   ..$ code.type.job           : chr [1:11] "1" "3" "3" "3" ...
##   ..$ desc.committee          : chr [1:11] "Gestão do Programa de Stock Option" "Gestão do Programa de Stock Option" "Gestão do Programa de Stock Option" "Gestão do Programa de Stock Option" ...
##   ..$ desc.job                : chr [1:11] "Presidente do Conselho de Administração" "Vice presidente do Conselho de Administração" "Membro do Conselho de Administração" "Vice presidente do Conselho de Administração e membro do Comitê de Investimentos" ...
##   ..$ date.election           : Date[1:11], format: "2015-02-12" "2015-02-12" ...
##   ..$ date.effective          : Date[1:11], format: "2015-02-12" "2015-02-12" ...
##   ..$ mandate.duration        : chr [1:11] "indeterminado" "Indeterminado" "Indeterminado" "Indeterminado" ...
##   ..$ qtd.consecutive.mandates: num [1:11] 1 1 1 1 1 1 1 1 1 1 ...
##   ..$ percentage.participation: num [1:11] 100 100 100 100 100 100 100 100 100 100 ...
##   ..$ other.committes         : chr [1:11] "Gestão do Programa de Stock Option" "Gestão do Programa de Stock Option" "Gestão do Programa de Stock Option" "Gestão do Programa de Stock Option" ...
##  $ df_family_relations        :'data.frame': 14 obs. of  14 variables:
##   ..$ CNPJ_CIA           : chr [1:14] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" ...
##   ..$ DENOM_CIA          : chr [1:14] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." ...
##   ..$ DT_REFER           : Date[1:14], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM             : num [1:14] 19615 19615 19615 19615 19615 ...
##   ..$ ID_DOC             : num [1:14] 83396 83396 83396 83396 83396 ...
##   ..$ VERSAO             : num [1:14] 16 16 16 16 16 16 16 16 18 18 ...
##   ..$ person.name        : chr [1:14] "Pedro Grendene Bartelle" "Pedro Grendene Bartelle" "Alexandre Grendene Bartelle" "Alexandre Grendene Bartelle" ...
##   ..$ person.cpf         : num [1:14] 9.86e+09 9.86e+09 9.87e+09 9.87e+09 9.86e+09 ...
##   ..$ person.job         : chr [1:14] "Vice Presidente do Conselho de Administração" "Diretor Vice Presidente" "Presidente do Conselho de Administração" "Diretor Presidente" ...
##   ..$ related.person.name: chr [1:14] "Alexandre Grendene Bartelle" "Alexandre Grendene Bartelle" "Pedro Grendene Bartelle" "Pedro Grendene Bartelle" ...
##   ..$ related.person.cpf : num [1:14] 9.87e+09 9.87e+09 9.86e+09 9.86e+09 6.86e+10 ...
##   ..$ related.person.job : chr [1:14] "Presidente do Conselho de Administração" "Diretor Presidente" "Vice Presidente do Conselho de Administração" "Diretor Vice Presidente" ...
##   ..$ code.relationship  : chr [1:14] "2" "2" "2" "2" ...
##   ..$ desc.relationship  : chr [1:14] "Irmão ou Irmã (1º grau por consangüinidade)" "Irmão ou Irmã (1º grau por consangüinidade)" "Irmão ou Irmã (1º grau por consangüinidade)" "Irmão ou Irmã (1º grau por consangüinidade)" ...
##  $ df_family_related_companies:'data.frame': 39 obs. of  15 variables:
##   ..$ CNPJ_CIA            : chr [1:39] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" ...
##   ..$ DENOM_CIA           : chr [1:39] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." ...
##   ..$ DT_REFER            : Date[1:39], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM              : num [1:39] 19615 19615 19615 19615 19615 ...
##   ..$ ID_DOC              : num [1:39] 83396 83396 83396 83396 83396 ...
##   ..$ VERSAO              : num [1:39] 16 16 16 16 16 16 16 16 16 16 ...
##   ..$ person.name         : chr [1:39] "Pedro Grendene Bartelle" "Pedro Grendene Bartelle" "Pedro Grendene Bartelle" "Maílson Ferreira da Nóbrega" ...
##   ..$ person.cpf          : num [1:39] 9.86e+09 9.86e+09 9.86e+09 4.30e+09 3.76e+10 ...
##   ..$ person.job          : chr [1:39] "Vice-Presidente do Conselho de Administração" "Vice-Presidente do Conselho de Administração" "Vice-Presidente do Conselho de Administração" "Conselheiro de Administração" ...
##   ..$ type.related.person : chr [1:39] "Cliente" "Fornecedor" "Cliente" "Fornecedor" ...
##   ..$ type.relationship   : chr [1:39] "Controle" "Controle" "Controle" "Controle" ...
##   ..$ observations        : chr [1:39] "Venda de insumos e matrizes utilizados na produção de calçados - prazo médio de recebimento 32 dias." "Compra de serviços referente comissões - Prazo médio de pagamentos 11 dias" "Venda de matrizes utilizadas na produção de calçados - Prazo médio de recebimento 33 dias." "Assessoria" ...
##   ..$ related.company.name: chr [1:39] "Vulcabras|Azaleia - CE, Calçados e Artigos Esportivos S.A." "Vulcabras|Azaleia - CE, Calçados e Artigos Esportivos S.A." "Vulcabras|Azaleia - BA, Calçados e Artigos Esportivos S.A." "Mailson da Nóbrega Consultoria S/C Ltda" ...
##   ..$ related.company.cnpj: num [1:39] 9.54e+11 9.54e+11 7.34e+11 1.58e+12 6.24e+13 ...
##   ..$ related.company.job : chr [1:39] "Acionista controlador" "Acionista controlados" "Acionista controlador" "Sócio proprietário" ...
##  $ df_auditing                :'data.frame': 4 obs. of  14 variables:
##   ..$ CNPJ_CIA                  : chr [1:4] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60"
##   ..$ DENOM_CIA                 : chr [1:4] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A."
##   ..$ DT_REFER                  : Date[1:4], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM                    : num [1:4] 19615 19615 19615 19615
##   ..$ ID_DOC                    : num [1:4] 83396 83396 94693 94693
##   ..$ VERSAO                    : num [1:4] 16 16 18 18
##   ..$ auditor.name              : chr [1:4] "PRICEWATERHOUSECOOPERS AUDITORES INDEPENDENTES (PWC)" "Ernst & Young Auditores Independentes S/S" "PRICEWATERHOUSECOOPERS AUDITORES INDEPENDENTES (PWC)" "Ernst & Young Auditores Independentes S/S"
##   ..$ auditor.cnpj              : chr [1:4] "61562112000635" "61366936000206" "61562112000635" "61366936001105"
##   ..$ contract.first.date       : Date[1:4], format: NA NA ...
##   ..$ contract.last.date        : Date[1:4], format: NA NA ...
##   ..$ description.contract      : chr [1:4] "Revisão dos ITR's (Controladora e Consolidado) e auditoria anual de balanço da Controladora e Consolidado." "Revisão dos ITR's (controladora e Consolidado) e auditoria anual de balanço da Controladora e Consolidado." "Revisão dos ITR's (Controladora e Consolidado) e auditoria anual de balanço da Controladora e Consolidado." "Revisão dos ITR's (controladora e Consolidado) e auditoria anual de balanço da Controladora e Consolidado."
##   ..$ compensation              : chr [1:4] "No exercício social encerrado em 31/12/2016 o montante total da remuneração dos auditores independentes foi R$4"| __truncated__ "Para o exercício encerrado em 31/12/2017 - R$409,2 mil, referente a serviços de auditoria prestados e R$131,1 m"| __truncated__ "No exercício social encerrado em 31/12/2016 o montante total da remuneração dos auditores independentes foi R$4"| __truncated__ "Para o exercício encerrado em 31/12/2017 - R$409,2 mil, referente a serviços de auditoria prestados e R$131,1 m"| __truncated__
##   ..$ justification.substitution: chr [1:4] "Substituição em cumprimento à Instrução da Comissão de Valores Mobiliários nº 308/99 (art.31), que determina a "| __truncated__ NA "Substituição em cumprimento à Instrução da Comissão de Valores Mobiliários nº 308/99 (art.31), que determina a "| __truncated__ NA
##   ..$ reason.discordance        : chr [1:4] "Não houve discordância" NA "Não houve discordância" NA
##  $ df_responsible_docs        :'data.frame': 4 obs. of  9 variables:
##   ..$ CNPJ_CIA   : chr [1:4] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60"
##   ..$ DENOM_CIA  : chr [1:4] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A."
##   ..$ DT_REFER   : Date[1:4], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM     : num [1:4] 19615 19615 19615 19615
##   ..$ ID_DOC     : num [1:4] 83396 83396 94693 94693
##   ..$ VERSAO     : num [1:4] 16 16 18 18
##   ..$ person.cod : chr [1:4] "66" "67" "38" "39"
##   ..$ person.name: chr [1:4] "Rudimar Dall Onder" "Francisco Olinto Velo Schmitt" "Rudimar Dall Onder" "Alceu Demartini de Albuquerque"
##   ..$ person.job : chr [1:4] "Diretor Presidente" "Diretor de Relações com Investidores" "Diretor Presidente" "Diretor de Relações com Investidores"
##  $ df_stocks_details          :'data.frame': 2 obs. of  16 variables:
##   ..$ CNPJ_CIA           : chr [1:2] "89.850.341/0001-60" "89.850.341/0001-60"
##   ..$ DENOM_CIA          : chr [1:2] "GRENDENE S.A." "GRENDENE S.A."
##   ..$ DT_REFER           : Date[1:2], format: "2018-01-01" "2019-01-01"
##   ..$ CD_CVM             : num [1:2] 19615 19615
##   ..$ ID_DOC             : num [1:2] 83396 94693
##   ..$ VERSAO             : num [1:2] 16 18
##   ..$ type.stock.id      : chr [1:2] "1" "1"
##   ..$ type.stock.text    : chr [1:2] "Ordinária" "Ordinária"
##   ..$ tag.along          : num [1:2] 100 100
##   ..$ preferential.code  : chr [1:2] "0" "0"
##   ..$ preferential.text  : logi [1:2] NA NA
##   ..$ dividend.text      : chr [1:2] "Conforme o Estatuto Social da Companhia, art.32, os acionistas fazem jus a dividendo obrigatório anual equivale"| __truncated__ "Conforme o Estatuto Social da Companhia, art.32, os acionistas fazem jus a dividendo obrigatório anual equivale"| __truncated__
##   ..$ flag.voting.rights : chr [1:2] "1" "1"
##   ..$ flag.voting.text   : chr [1:2] "Pleno" "Pleno"
##   ..$ flag.conversibility: chr [1:2] "Não" "Não"
##   ..$ other.info.text    : chr [1:2] "Não existem características relevantes adicionais." "Não existem características relevantes adicionais."
##  $ df_dividends_details       :'data.frame': 2 obs. of  11 variables:
##   ..$ CNPJ_CIA            : chr [1:2] "89.850.341/0001-60" "89.850.341/0001-60"
##   ..$ DENOM_CIA           : chr [1:2] "GRENDENE S.A." "GRENDENE S.A."
##   ..$ DT_REFER            : Date[1:2], format: "2018-01-01" "2019-01-01"
##   ..$ CD_CVM              : num [1:2] 19615 19615
##   ..$ ID_DOC              : num [1:2] 83396 94693
##   ..$ VERSAO              : num [1:2] 16 18
##   ..$ net.profit          : num [1:2] 6.61e+08 5.86e+08
##   ..$ distributed.dividend: num [1:2] 3.78e+08 3.15e+08
##   ..$ retained.profit     : num [1:2] 2.74e+08 2.70e+08
##   ..$ payout              : num [1:2] 57.2 53.8
##   ..$ div.yeild.on.equity : num [1:2] 22.6 18.2
##  $ df_intangible_details      :'data.frame': 25 obs. of  10 variables:
##   ..$ CNPJ_CIA   : chr [1:25] "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" "89.850.341/0001-60" ...
##   ..$ DENOM_CIA  : chr [1:25] "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." "GRENDENE S.A." ...
##   ..$ DT_REFER   : Date[1:25], format: "2018-01-01" "2018-01-01" ...
##   ..$ CD_CVM     : num [1:25] 19615 19615 19615 19615 19615 ...
##   ..$ ID_DOC     : num [1:25] 83396 83396 83396 83396 83396 ...
##   ..$ VERSAO     : num [1:25] 16 16 16 16 16 16 16 16 16 16 ...
##   ..$ id         : num [1:25] 1111 1112 1113 1114 1115 ...
##   ..$ id.type    : num [1:25] 2 2 2 2 2 2 2 2 2 2 ...
##   ..$ patent.desc: chr [1:25] "Zaxy" "Mel" "Cartago" "Rider" ...
##   ..$ duration   : Date[1:25], format: NA NA ...

To leave a comment for the author, please follow the link and comment on their blog: R | msperlin.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.