Extraindo tabelas de arquivos PDF com o R

[et_pb_section admin_label="section"][et_pb_row admin_label="row"][et_pb_column type="4_4"][et_pb_text admin_label="Texto" background_layout="light" text_orientation="justified" text_font="Verdana||||" text_font_size="18" use_border_color="off" border_color="#ffffff" border_style="solid"]

Na edição 28 do Clube do Código, abordamos um problema prático: extrair tabelas de arquivos PDF. Isso pode ser um transtorno, não é mesmo? Já pensou ter que pegar dados de uma tabela, um a um, e colocar em outro programa? Com o R, isso, claro, é feito de outra forma. Utilizamos o pacote tabulizer para essa empreitada. Por exemplo, podemos estar interessados em pegar uma tabela do Relatório Trimestral de Inflação. Assim, começamos o nosso código, como abaixo.

library(tabulizer)
url = 'http://www.bcb.gov.br/htms/relinf/port/2017/03/ri201703c2p.pdf'
out = extract_tables(url)

Com três linhas de código, nós extraimos as tabelas do arquivo PDF. Agora, basta limpar um pouco os dados e utilizar a função stargazer para colocar essa tabela abaixo.

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label="row"][et_pb_column type="1_3"][/et_pb_column][et_pb_column type="1_3"][et_pb_code admin_label="Código"]<center> <table style="text-align:center"><caption><strong>Projeção da inflação no cenário com taxas de juros e câmbio da pesquisa Focus</strong></caption> <tr><td colspan="8" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Trimestre</td><td>50% Lower</td><td>30% Lower</td><td>10% Lower</td><td>Central</td><td>10% Upper</td><td>30% Upper</td><td>50% Upper</td></tr> <tr><td colspan="8" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">2017 1</td><td>4,6</td><td>4,6</td><td>4,6</td><td>4,6</td><td>4,6</td><td>4,6</td><td>4,6</td></tr> <tr><td style="text-align:left">2017 2</td><td>3,5</td><td>3,7</td><td>3,8</td><td>3,9</td><td>4,0</td><td>4,1</td><td>4,3</td></tr> <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td style="text-align:left">2017 3</td><td>2,8</td><td>3,1</td><td>3,3</td><td>3,4</td><td>3,5</td><td>3,7</td><td>4,0</td></tr> <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td style="text-align:left">2017 4</td><td>3,2</td><td>3,6</td><td>3,9</td><td>4,0</td><td>4,1</td><td>4,4</td><td>4,8</td></tr> <tr><td style="text-align:left">2018 1</td><td>3,5</td><td>3,9</td><td>4,2</td><td>4,4</td><td>4,6</td><td>4,9</td><td>5,3</td></tr> <tr><td style="text-align:left">2018 2</td><td>3,2</td><td>3,7</td><td>4,0</td><td>4,2</td><td>4,4</td><td>4,7</td><td>5,2</td></tr> <tr><td style="text-align:left">2018 3</td><td>3,2</td><td>3,7</td><td>4,0</td><td>4,2</td><td>4,4</td><td>4,7</td><td>5,2</td></tr> <tr><td style="text-align:left">2018 4</td><td>3,5</td><td>4,0</td><td>4,3</td><td>4,5</td><td>4,7</td><td>5,0</td><td>5,5</td></tr> <tr><td style="text-align:left">2019 1</td><td>3,6</td><td>4,1</td><td>4,4</td><td>4,6</td><td>4,8</td><td>5,1</td><td>5,6</td></tr> <tr><td colspan="8" style="border-bottom: 1px solid black"></td></tr><tr><td colspan="8" style="text-align:left">Fonte: Relatório de Inflação BCB - Março de 2017.</td></tr> </table> </center>[/et_pb_code][/et_pb_column][et_pb_column type="1_3"][/et_pb_column][/et_pb_row][et_pb_row admin_label="row"][et_pb_column type="4_4"][et_pb_text admin_label="Texto" background_layout="light" text_orientation="justified" text_font="Verdana||||" text_font_size="18" use_border_color="off" border_color="#ffffff" border_style="solid"]

Aqui, para colocar no Blog, estou usando um código html. Mas é possível usar LaTeX e colocar essa tabela em outro pdf, como faço na edição 28 do Clube do Código. Bacana, não? 🙂

[/et_pb_text][et_pb_button admin_label="Botão" button_url="https://analisemacro.com.br/clube-do-codigo/" url_new_window="off" button_text="Receba exercícios como esse no Clube do Código!" button_alignment="center" background_layout="light" custom_button="off" button_letter_spacing="0" button_use_icon="default" button_icon_placement="right" button_on_hover="on" button_letter_spacing_hover="0"] [/et_pb_button][/et_pb_column][/et_pb_row][/et_pb_section]

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como usar IA para sumarizar dados de demonstrações de empresas brasileiras no Python

Neste post, vamos explorar como utilizar o modelo de linguagem Gemini do Google para analisar demonstrações contábeis anuais da Eletrobras e extrair informações relevantes para tomada de decisão. Através de um código Python, vamos importar os dados direto da CVM, conectar com o Gemini e gerar resumos sobre as contas das demonstrações e perspectivas futuras sobre as finanças da empresa.

O que é Inteligência Artificial Generativa e como usar para negócios?

O que é Inteligência Artificial? O que é Inteligência Artificial Generativa? Como essa tecnologia pode impulsionar os resultados de uma empresa?
Nesta postagem, respondemos a essas perguntas de forma prática e objetiva, destacando os principais conceitos e demonstrando como aplicar a IA de forma estratégica para otimizar processos, reduzir custos e aumentar os ganhos do negócio.

Análise de impacto fiscal sobre o dolár com Python

Usamos uma cesta de 12 moedas para construir um cenário contrafactual da taxa de câmbio após o último anúncio de pacote fiscal, com base em modelagem Bayesiana. No período, o dolár depreciou quase 5% e passou os R$ 6,15, enquanto que na ausência da intervenção a moeda deveria estar cotada em R$ 5,78.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.