Importar Sem Estragar

Desenho Experimental e Análise Avançada de Dados Ecológicos

João O. Santos

ISPA

O Ficheiro Primeiro

Antes de analisar, garantam que o R está a ler o mesmo que vocês veem.

Ler, Inspeccionar, Escrever

ler → inspeccionar → só depois escrever

O original não se altera. Trabalhamos numa cópia e documentamos as alterações.

Onde Está o Ficheiro?

getwd()
file.exists("../../data/lobsters-2016.tsv")

Um caminho relativo parte da pasta de trabalho da sessão, não da pasta que vos aparece no gestor de ficheiros.

Ler Um CSV

dados <- read.csv("../../data/manatees.csv")
head(dados)
str(dados)

vírgula · cabeçalho · uma linha por unidade

Antes de Confiar

readLines("../../data/lobsters-2016.tsv", n = 2)

Olhem para as primeiras linhas em bruto. Os separadores não se veem bem no ecrã.

Separador ≠ Vírgula

\t · ; · vírgula decimal

Se todas as colunas aparecerem coladas, o problema é quase sempre o separador.

Um Ficheiro Tabulado

lagostas <- read.delim("../../data/lobsters-2016.tsv")
names(lagostas)

Os nomes mudaram. Pounds(M) passou a Pounds.M.. Isso é o R a tornar os nomes válidos.

Nomes ao Importar

espaços · parênteses · barras → pontos

Anotem a transformação. Quem escreve o código depois precisa dela.

Ficheiro Não Encontrado

caminho errado · pasta errada · maiúsculas e minúsculas

Se file.exists() devolver FALSE, não mudem nomes ao acaso. Confirmem o caminho.

Guardar Uma Cópia

ficheiro_copia <- tempfile("copia_", fileext = ".csv")
write.csv(dados, ficheiro_copia, row.names = FALSE)

row.names = FALSE evita uma coluna extra com números de linha.

Verificar a Exportação

reimportado <- read.csv(ficheiro_copia)
stopifnot(nrow(dados) == nrow(reimportado))
stopifnot(identical(names(dados), names(reimportado)))

O ficheiro existir não garante que o conteúdo seja o mesmo.

Exercício Um

15 minutos · pares

Usem lobsters-2016.tsv:

  1. leiam o ficheiro com read.delim();
  2. confirmem o número de linhas e de colunas com dim();
  3. identifiquem a coluna de anos e a coluna de toneladas;
  4. escrevam que nomes mudaram ao importar.

Se algum número parecer estranho, voltem às primeiras linhas em bruto.

Exercício Dois

20 minutos · pares

Usem bryozoan_raw.csv, dados de briozoários de duas espécies, com estádio, corrida e colunas logarítmicas:

  1. leiam o ficheiro com read.csv();
  2. usem str() e table() para ver os estádios das duas espécies;
  3. confirmem que as colunas logarítmicas são numéricas;
  4. escrevam a frase: o que é uma linha deste ficheiro?

Uma linha é um indivíduo, uma corrida ou uma medição repetida? A resposta muda o que podem contar.

Antes de Exportar

  • O original continua intacto?
  • As transformações estão escritas no script?
  • O novo ficheiro tem outro nome e outra pasta?

Próximo Passo

Ficheiro lido → tabela verificada → análise

Importação e Exportação de Dados

Limpeza de Dados

Voltar às aulas DEAADE