Organizando Dados em Planilhas

Boas práticas de organização de dados

O arquivos de dados de uma pesquisa

Toda pesquisa gera um conjunto de dados que precisam ser armazenados de alguma forma. Via de regra, são armazenados em formato de tabelas, nas quais cada variável é representada por uma coluna e cada participante da pesquisa por uma linha. A primeira linha contém os nomes das variáveis; as linhas seguintes são os dados de cada participante. O banco de dados que usamos neste livro — pacientes.csv — segue exatamente esse formato:

Tabela 1: Primeiras linhas do banco de dados pacientes.csv — cada linha é um paciente, cada coluna é uma variável.
ID Idade Sexo Colesterol Glicose Cidade
1000 46 female 203 82 Buckingham
1001 29 female 165 97 Buckingham
1002 58 female 228 92 Buckingham
1003 67 male 78 93 Buckingham

Existem vários formatos para armazenar tabelas como essa. O mais comum é o formato de planilhas eletrônicas: o Excel usa arquivos .xlsx, o Numbers da Apple usa .numbers, o LibreOffice usa .ods. O problema é que cada formato só é plenamente legível pelo software que o criou.

Um dos formatos mais comuns para armazenar os dados de uma pesquisa é o csv (comma-separated values — valores separados por vírgula), com extensão .csv. Um arquivo csv é texto puro: nada mais que valores separados por vírgulas, um participante por linha. Se abrirmos o arquivo pacientes.csv num editor de texto simples, como o Bloco de Notas do Windows ou o TextEdit do Mac, vemos apenas isso:

id,colesterol,glicose,hdl,idade,sexo,altura,peso,cidade
1000,203,82,56,46,female,157.48,54.88,Buckingham
1001,165,97,24,29,female,162.56,98.88,Buckingham
1002,228,92,37,58,female,154.94,116.12,Buckingham
1003,78,93,12,67,male,170.18,53.98,Buckingham

Sem formatação, sem cores, sem fórmulas escondidas — apenas dados. Qualquer software lê esse formato: R, Python, SPSS, Stata, Excel, em qualquer sistema operacional, sem depender de versão ou licença. É o formato de intercâmbio universal para dados de pesquisa.

A simplicidade do CSV é a sua maior força — e também a sua limitação. Um arquivo CSV é apenas texto: linhas e colunas separadas por um delimitador. Qualquer software consegue abri-lo, qualquer linguagem consegue lê-lo. Mas essa simplicidade tem um custo: o CSV não carrega nenhuma informação sobre o significado dos dados. Ele não sabe que a coluna sexo contém valores 1 e 2 que representam “masculino” e “feminino”. Não sabe que glicose é medida em mg/dL. Não sabe quais valores devem ser tratados como ausentes. O CSV guarda os dados, mas não os metadados.

Formatos de softwares estatísticos como .sav (SPSS) e .dta (Stata) funcionam de maneira diferente. Além dos dados em si, esses arquivos armazenam metadados: o rótulo descritivo de cada variável (por exemplo, "Glicemia de jejum (mg/dL)"), os rótulos de cada valor categórico (1 = masculino, 2 = feminino), os valores definidos como ausentes e até o formato de exibição. Em outras palavras, o dicionário de variáveis já vem embutido no arquivo — dados e documentação viajam juntos.

Para importar esses formatos mais ricos sem perder os metadados, o R oferece o pacote haven e o Python oferece o pacote pyreadstat. Ambos leem os dados e os metadados de uma só vez: ao abrir um .sav com haven::read_sav(), cada coluna já chega com seu rótulo e seus valores codificados. Isso evita aquele passo manual de consultar um dicionário separado para entender o que cada variável significa.

Nada disso significa que você deva abandonar o CSV — ele continua sendo o formato mais comum para armazenamento. Mas é importante saber que, ao escolher CSV, você está abrindo mão dos metadados. O dicionário de variáveis precisa existir em algum lugar — só não vai ser dentro do arquivo.

NotaVírgulas, ponto e vírgula e decimais

O nome csv vem de comma-separated values — valores separados por vírgula. Mas nem todo CSV usa vírgula como separador. Na prática, existem três separadores comuns:

  • Vírgula (,): o padrão original, usado em países de língua inglesa.
  • Ponto e vírgula (;): comum no Brasil e em outros países que usam vírgula como separador decimal.
  • Tabulação (Tab): usado em arquivos .tsv, mas às vezes com extensão .csv.

O motivo dessa variação é o separador decimal. Em inglês, o número três e meio se escreve 3.5 (com ponto). Em português, se escreve 3,5 (com vírgula). Se o arquivo usasse vírgula como separador decimal e como separador de colunas, o resultado seria uma confusão. Por isso, quando os decimais usam vírgula, o separador de colunas precisa ser outro — geralmente ponto e vírgula. Nesse exemplo abaixo a vírgula representa a separador de decimais e o ponto e virgula o separador dos valores

id;colesterol;glicose
1000;203,5;82,3

Antes de importar um csv, abra o arquivo em um editor de texto simples (Bloco de Notas, TextEdit) e verifique: qual é o separador de colunas? E qual é o separador decimal? No R, a função read.csv() espera vírgula e ponto decimal; read.csv2() espera ponto e vírgula e vírgula decimal.

A história

Em 2010, dois economistas de Harvard — Carmen Reinhart e Kenneth Rogoff — publicaram um artigo influente intitulado Growth in a Time of Debt. A conclusão era contundente: países com dívida pública acima de 90% do PIB apresentavam crescimento econômico negativo (média de −0,1%). O artigo tornou-se rapidamente uma das referências mais citadas no debate global sobre austeridade. Foi invocado no orçamento federal dos Estados Unidos, nos cortes de gastos do Reino Unido e nas políticas de austeridade da zona do euro após a crise de 2008 (1).

Em abril de 2013, Thomas Herndon — um aluno de mestrado da Universidade de Massachusetts Amherst — tentou replicar os resultados como exercício de aula. Não conseguiu. Quando Reinhart e Rogoff gentilmente compartilharam sua planilha original do Excel, Herndon descobriu o que se tornaria um dos escândalos metodológicos mais célebres da economia moderna (2).

O problema tinha três camadas. Primeiro, ao calcular a média de crescimento para a categoria “>90% de dívida”, a fórmula do Excel selecionava as células das linhas 30 a 44 em vez de 30 a 49 — excluindo acidentalmente cinco países (Austrália, Áustria, Bélgica, Canadá e Dinamarca) simplesmente porque estavam no topo da lista em ordem alfabética. Segundo, Reinhart e Rogoff haviam excluído deliberadamente dados da Austrália, do Canadá e da Nova Zelândia no pós-guerra sem justificativa explícita — países que, aliás, cresceram durante períodos de dívida alta. Terceiro, a metodologia de ponderação tratava cada país como uma única observação, independentemente de quantos anos aparecia na categoria — assim, os 19 anos do Reino Unido tinham o mesmo peso que o único ano da Nova Zelândia (que, convenientemente, registrou crescimento negativo naquele ano) (2).

Quando Herndon corrigiu os três problemas, a média de crescimento para países com dívida acima de 90% do PIB não era −0,1% — era +2,2%. A conclusão central do artigo original evaporava.

AvisoA lição de Reinhart-Rogoff

O erro não estava na teoria econômica, nem na qualidade dos dados. Estava na planilha. Uma fórmula que não selecionou todas as células. Dados organizados de forma que o erro fosse invisível. Nenhuma verificação automática. O episódio demonstra que a organização dos dados não é um detalhe técnico — é uma decisão metodológica com consequências reais.

A regra fundamental

O erro de Reinhart e Rogoff não foi um acidente isolado — foi consequência de usar a planilha para algo que ela não deveria fazer. A fórmula que excluiu cinco países era invisível: nenhum colega, nenhum revisor e nenhum leitor poderia ter notado o problema olhando para os resultados. O erro só apareceu quando alguém abriu a planilha e inspecionou célula por célula.

A lição é direta: planilhas servem para armazenar dados, não para analisar. A análise — cálculos, transformações, modelos, gráficos — deve ser feita em software estatístico com código documentado: R, Python, SPSS, Stata ou qualquer ferramenta em que cada passo fique registrado e seja reproduzível. Num script em R ou Python, o erro de Reinhart e Rogoff seria uma linha de código legível, revisável e rastreável — não uma fórmula escondida numa célula.

O formato que faz a ponte entre a planilha e o software de análise é o CSV (comma-separated values — valores separados por vírgula). Um arquivo .csv é texto puro: qualquer software lê, em qualquer sistema operacional, sem depender de versão ou licença. Não tem formatação oculta, não converte nomes de genes em datas, não esconde fórmulas em células.

ImportantePlanilha = armazenamento. Código = análise.

Use o Excel (ou Google Sheets) apenas para organizar os dados. Salve em formato CSV. Faça toda a análise em software estatístico com código reproduzível. Nunca use fórmulas em planilhas eletrônicas para gerar resultados de pesquisa.

Por que a organização importa

Se a planilha é apenas o lugar onde os dados ficam guardados, a forma como os organizamos determina se o software de análise vai conseguir lê-los sem problemas. Pesquisadores passam até 80% do tempo de uma análise com limpeza e reorganização de dados — quase sempre porque os dados foram organizados para o olho humano, não para o computador (3,4).

A boa notícia é que existem princípios claros, baseados em décadas de experiência, que tornam qualquer planilha mais robusta e mais fácil de importar para R, Python ou qualquer outro software. Esses princípios podem ser resumidos numa ideia central: organize os dados para o computador, não para o olho humano.

Tidy data: os três princípios

O conceito de tidy data (dados arrumados), formalizado em 2014, fornece uma estrutura simples e poderosa para organizar dados tabulares. A ideia é análoga ao conceito de terceira forma normal em bancos de dados relacionais, mas traduzida para a linguagem da estatística (3).

Dados tidy obedecem a três regras:

Tabela 2: Os três princípios de dados arrumados (tidy data) — simples na teoria, transformadores na prática.
Princípio O que significa Exemplo de violação
1. Cada variável é uma coluna Todas as medições do mesmo atributo (ex: peso) ficam numa única coluna Peso de homens e peso de mulheres em colunas separadas
2. Cada observação é uma linha Todos os atributos de um mesmo sujeito (ex: paciente 1001) ficam numa única linha Mesmo paciente em duas linhas por estar em dois centros
3. Cada tipo de unidade observacional é uma tabela Dados de naturezas diferentes (ex: pacientes e exames) ficam em tabelas separadas Misturar dados de pacientes e dados de hospitais na mesma tabela

O nosso banco de dados pacientes.csv — que vimos no início do capítulo — é um exemplo de dados tidy: cada linha é um paciente, cada coluna é uma variável, e há uma única tabela com um tipo de unidade observacional (pacientes).

Dados messy: os cinco problemas comuns

A maioria dos dados reais não é tidy. Os cinco problemas mais comuns, com seus remédios, são (3):

Tabela 3: Os cinco problemas mais comuns de dados ‘messy’ — e como corrigi-los.
Problema Exemplo Remédio
Cabeçalhos de coluna são valores, não nomes Colunas ‘semana_1’, ‘semana_2’, … em vez de uma coluna ‘semana’ e outra ‘valor’ Pivotar (pivot_longer): transformar colunas em linhas
Múltiplas variáveis em uma única coluna Coluna ‘m1524’ que codifica sexo masculino + faixa etária 15–24 juntos Separar (separate): dividir a coluna em duas variáveis
Variáveis armazenadas em linhas e colunas Uma coluna ‘elemento’ com valores ‘tmax’ e ‘tmin’ que são variáveis diferentes Pivotar para mais largo (pivot_wider): linhas viram colunas
Múltiplos tipos de unidade na mesma tabela Dados do hospital e do paciente misturados na mesma planilha Separar em tabelas distintas com chave de ligação (ID)
Uma unidade espalhada por múltiplas tabelas Dados de janeiro num arquivo, fevereiro noutro, sem estrutura consistente Empilhar (bind_rows) com estrutura padronizada

Boas práticas em planilhas

As recomendações a seguir — baseadas em experiência acumulada e erros reais — tornam qualquer planilha mais robusta, mais reproduzível e menos propensa aos tipos de erro que afundaram Reinhart e Rogoff (4).

1. Seja consistente

A primeira regra é a mais simples e a mais violada: seja consistente. Se a variável sexo é codificada como female, use sempre female — nunca Female, fem, F ou feminino no meio do banco. Se as datas estão em formato YYYY-MM-DD, mantenha esse formato em todas as células. Se os valores ausentes são codificados como NA, use sempre NA — nunca -999, célula vazia ou a palavra “missing” (4).

A inconsistência é invisível para quem digita e devastadora para quem analisa. Um simples espaço extra (male vs. male) cria duas categorias diferentes para o software.

2. Escolha bons nomes de variáveis

Nomes de variáveis devem ser curtos, significativos e legíveis por máquina. Na prática, isso significa: sem espaços, sem acentos, sem caracteres especiais, preferencialmente em snake_case (4).

Tabela 4: Exemplos de nomes de variáveis — boas e más práticas.
Bom nome Nome a evitar Problema
peso_kg Peso (kg) Parênteses e espaços
pressao_sistolica Pressão Sistólica Acentos e maiúsculas
data_coleta Data da Coleta Espaços e preposição
glicose_jejum Glicose em jejum (mg/dL) Espaços, parênteses e unidade
sexo Sexo do Paciente Redundante — óbvio pelo contexto
idade_anos Idade (em anos completos) Parênteses e redundância

Nosso banco de dados segue essa prática: colesterol, glicose, hdl, peso, altura, sistolica, diastolica, cintura, quadril. Nomes curtos, sem espaços, sem acentos.

3. Datas em formato ISO

Datas devem ser registradas no formato YYYY-MM-DD (ISO 8601): 2024-03-15, não 15/03/2024 nem March 15, 2024. Esse formato evita a confusão entre dia e mês (o que significa 03/04/2024?), é ordenável cronologicamente como texto e é reconhecido universalmente por software estatístico (4).

AvisoExcel e datas: uma relação perigosa

O Excel armazena datas internamente como números (dias desde uma data de referência) e pode reformatar datas silenciosamente ao abrir um arquivo. Pior: em algumas versões, nomes de genes como OCT4 e MARCH1 são convertidos automaticamente em datas. Um estudo encontrou que cerca de 20% dos artigos com listas de genes em arquivos suplementares continham erros de conversão de datas (4). A recomendação é formatar a coluna como “Texto” antes de digitar as datas.

4. Sem células vazias

Toda célula deve conter um valor. Se o dado está ausente, use um código explícito — preferencialmente NA. Nunca deixe a célula vazia, porque o software não consegue distinguir entre “dado ausente” e “esqueci de preencher”. Nunca use códigos numéricos como -999 ou 0 para representar ausência, pois podem ser confundidos com valores reais (4).

5. Uma coisa por célula

Cada célula deve conter uma única informação. Se a posição na placa é 13-A01, é melhor ter três colunas: placa = 13, linha = A, coluna = 01. Se o peso inclui unidade (45 g), separe em peso = 45 e documente a unidade no dicionário de dados (4).

6. Faça um retângulo

Os dados devem formar um retângulo: sujeitos nas linhas, variáveis nas colunas, uma única linha de cabeçalho com os nomes das variáveis. Sem tabelas espalhadas pela planilha, sem linhas de título mescladas, sem subtotais intercalados, sem múltiplas tabelas na mesma aba (4).

Tabela 5: O banco de dados como retângulo — a estrutura que todo software espera.
id idade sexo colesterol glicose cidade
1000 46 female 203 82 Buckingham
1001 29 female 165 97 Buckingham
1002 58 female 228 92 Buckingham
1003 67 male 78 93 Buckingham
1005 64 male 249 90 Buckingham

7. Crie um dicionário de dados

Todo banco de dados deveria ser acompanhado de um dicionário (ou codebook) que descreva cada variável: nome, significado, unidade, tipo, valores possíveis e regras de codificação. O dicionário é um documento separado — nunca dentro da planilha de dados (4).

Tabela 6: Exemplo de dicionário de dados para o banco pacientes.csv — o ‘manual de instruções’ do banco.
Variável Descrição Tipo Unidade Valores
id Identificador único do paciente Numérica (ID) 1000–1402
idade Idade em anos completos Numérica contínua anos 19–92
sexo Sexo biológico Categórica nominal female, male
colesterol Colesterol total em jejum Numérica contínua mg/dL 78–443
glicose Glicemia em jejum Numérica contínua mg/dL 48–385
hdl HDL-colesterol Numérica contínua mg/dL 12–120
peso Peso corporal Numérica contínua kg 27,2–159,7
altura Estatura Numérica contínua cm 130,8–195,6
biotipo Classificação do biotipo corporal Categórica ordinal small, medium, large
sistolica Pressão arterial sistólica Numérica contínua mmHg 82–250
cidade Cidade de residência Categórica nominal Buckingham, Louisa

8. Sem cálculos no arquivo de dados brutos

Esta é a regra fundamental do capítulo aplicada ao arquivo: o arquivo de dados primário deve conter apenas dados — sem fórmulas, sem médias calculadas, sem gráficos embutidos. Toda análise vai para o código (R, Python, etc.), nunca para células do Excel. O arquivo original deve ser tratado como um registro imutável — o equivalente a um caderno de laboratório (4).

9. Não use cores como dados

É tentador destacar com cores as linhas com problemas, marcar outliers em vermelho ou indicar o sexo dos pacientes com azul e rosa. Mas cores não são dados — são formatação que se perde ao exportar para CSV e que nenhum software estatístico consegue ler automaticamente. Se uma informação precisa ser registrada, crie uma coluna para ela (ex: outlier = TRUE/FALSE) (4).

10. Salve em formato CSV

Como vimos no início do capítulo, o CSV é o formato que faz a ponte entre a planilha e o software de análise. Sempre mantenha uma cópia dos dados em CSV (ou TSV). Esses formatos são texto puro — abertos, universais, legíveis por qualquer software e imunes às armadilhas de formatação do Excel (4).

Verificando nosso banco de dados

Vamos aplicar os princípios ao nosso próprio banco de dados e verificar se ele atende às boas práticas:

Tabela 7: Auditoria do banco pacientes.csv — verificando aderência às boas práticas.
Critério Resultado Status
Formato retangular? Sim — 403 linhas × 18 colunas OK
Uma linha por observação? Sim — cada linha é um paciente (n = 403) OK
Nomes sem espaços/acentos? Sim — todos em snake_case (ex: glicohemoglobina, time.ppn) OK
Valores ausentes codificados? Sim — NA usado para ausência (51 valores ausentes em 12 variáveis) OK
Uma coisa por célula? Sim — cada célula contém um único valor OK
Sem cálculos embutidos? Sim — apenas dados brutos, sem fórmulas OK
Formato CSV? Sim — arquivo .csv com separador vírgula OK
NotaUm detalhe para melhorar

O nome time.ppn usa ponto em vez de underscore — uma convenção mista que poderia gerar inconsistência. O ideal seria time_ppn para manter o padrão snake_case. Pequenas inconsistências como essa são comuns em dados reais e ilustram por que a padronização desde o início é tão importante.

Voltando a Reinhart e Rogoff

Cada princípio deste capítulo — dados em formato retangular, nomes consistentes, CSV como formato de intercâmbio, análise em código — teria evitado ou tornado visível o erro que mudou a política econômica de países inteiros. A fórmula que excluiu cinco países não existiria se a análise estivesse em R ou Python. A exclusão de dados sem justificativa teria sido documentada num dicionário de dados. A ponderação enviesada seria transparente num script reproduzível. E o erro teria sido detectado antes da publicação se os dados e o código estivessem disponíveis para replicação — como eventualmente Thomas Herndon fez (2).

Resumo do capítulo

Tabela 8: Resumo — organização de dados em planilhas.
Conceito Definição Por que importa
Tidy data Cada variável é uma coluna; cada observação é uma linha; cada unidade é uma tabela Facilita análise, visualização e compartilhamento
Consistência Mesmo código para a mesma informação em todo o banco (NA, female, YYYY-MM-DD) Evita categorias duplicadas e erros de parsing
Nomes de variáveis Curtos, significativos, sem espaços/acentos, em snake_case Facilita programação e reduz erros de digitação
Datas (ISO 8601) YYYY-MM-DD — formato universal, ordenável, sem ambiguidade dia/mês Evita confusão 03/04 = março 4 ou 3 de abril?
Células vazias Nunca deixar vazio; usar NA para dados ausentes; nunca usar -999 ou 0 Permite distinguir ausência intencional de erro de digitação
Retângulo Sujeitos nas linhas, variáveis nas colunas, uma única linha de cabeçalho Todo software estatístico espera dados nesse formato
Dicionário de dados Documento separado descrevendo cada variável: nome, tipo, unidade, valores Permite que qualquer pessoa entenda e reproduza a análise
Dados brutos intocáveis O arquivo primário contém apenas dados — sem fórmulas, sem gráficos, sem cores como informação Preserva a integridade dos dados originais — como um caderno de laboratório
Formato CSV Manter cópia em texto simples — formato aberto, universal e imune ao Excel Garante que os dados sobrevivam a qualquer mudança de software
NotaPróximos passos

Este capítulo apresentou como organizar dados para que sejam analisáveis e reproduzíveis. No próximo capítulo, usaremos esses dados bem organizados para criar visualizações — gráficos que revelam padrões, comunicam resultados e, quando mal feitos, enganam.

Referências

1.
Reinhart CM, Rogoff KS. Growth in a Time of Debt. American Economic Review. 2010;100(2):573–8.
2.
Herndon T, Ash M, Pollin R. Does High Public Debt Consistently Stifle Economic Growth? A Critique of Reinhart and Rogoff. Cambridge Journal of Economics. 2014;38(2):257–79.
3.
Wickham H. Tidy Data. Journal of Statistical Software. 2014;59(10):1–23.
4.
Broman KW, Woo KH. Data Organization in Spreadsheets. The American Statistician. 2018;72(1):2–10.