Tabelas bem formatadas com o pacote {gt}

gt é um pacote de R para gerar tabelas bem formatadas, usando uma gramática/sintaxe intuitiva. Neste texto exploramos como construir tabelas que prendem a atenção do leitor, partindo de um exemplo básico a um exemplo avançado.

Prévia da tabela a ser construída:

Pacotes

Para reproduzir os códigos certifique-se de que tenha os seguintes pacotes de R instalados:

Preparar dados

Vamos começar primeiro preparando alguns dados para o exercício. Utilizaremos novamente dados de inflação provenientes da base de dados da OECD, já abordados anteriormente aqui. Além disso, utilizaremos alguns arquivos de imagens que são os PNGs com as bandeiras de alguns países. Essas imagens serão utilizadas na tabela, conforme visto acima.

O código abaixo realiza o download do arquivo ZIP de imagens para uma pasta temporária, descompacta o arquivo, coleta dados de inflação de países selecionados da OECD e realiza tratamentos necessários.

Tabela simples

Com os dados preparados, vamos ao primeiro exemplo básico gerando uma tabela com o gt:

Com uma única função o gt cria uma tabela de dados através de um data frame ou tibble! Mas podemos deixá-la mais informativa, colocando título, subtítulo, fonte, nomes de colunas, etc.:

Muito melhor, não? Mas ainda podemos melhorar, formatando os valores das células para 2 casas decimais com sufixo, além de criar um mapa de calor nas colunas numéricas:

Tabela estilizada

Agora que já exploramos o básico das funcionalidades do pacote gt, chegando a uma tabela mais "apresentável", vamos avançar mais uns passos para construir a tabela final que apresentamos logo no início.

O objetivo agora é adicionar em nossa tabela básica duas coisas: (1) uma linha de tendência que demonstra o comportamento da taxa de inflação de 2018 em diante e (2) as bandeiras de cada país.

Para as linhas de tendência, recurso que é chamado de "sparkline", primeiro criamos um objeto lista que vai armazenar vetores com os dados da taxa de inflação (% a.a.) de cada país. São esses vetores da lista que formarão as linhas de tendência, que serão lidos e interpretados pela função gt_sparklines que criamos na sequência. Essa função transformará os valores de uma determinada coluna de um objeto gt em sparklines usando dados externos (lista de vetores).

Já para adicionar as imagens de bandeiras de cada país usamos a função text_transform em conjunto com a função local_image, que farão a leitura do caminho para os arquivos de imagens informado na coluna flags e transformarão essa coluna com a renderização das imagens.

Abaixo colocamos o código completo, contemplando o que foi visto acima com essas duas adições:

________________________
(*) Para entender mais sobre a linguagem R e suas ferramentas, confira nosso Curso de Introdução ao R para análise de dados.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como automatizar o tratamento de dados feito no Excel usando o Python?

Segundo a pesquisa “State of Data Science”, profissionais de dados gastam 3 horas/dia (38% do tempo) apenas preparando os dados, antes mesmo de analisá-los. Neste artigo advogamos que este gasto de tempo pode ser drasticamente reduzido ao utilizar ferramentas open source, como Pandas e Python, para automatizar tarefas repetitivas que costumam ser feitas em Excel.

A gramática dos gráficos: como deixar de criar gráficos no Excel e usar o plotnine no Python

A etapa de visualização de dados refere-se a uma parte fundamental da análise de dados, pois permite não somente compreender os dados que estamos analisando, mas como também é uma ferramenta útil para explanar os resultados encontrados. Mas qual a forma mais fácil de construir um gráfico, como podemos melhorar a produtividade nesta tarefa? É onde podemos aplicar a gramática dos gráficos e construir com a biblioteca plotnine no Python.

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.