Existem diversas funções para importar dados para objetos do R, incluindo funções para ler arquivos do excel (xls, ou xlsx), arquivos XML, arquivos *.DBF, etc. O R também tem pacotes que interagem diretamente com bancos de dados (mysql, postgressql, etc.). Não cobriremos esses tipos aqui, mas você pode pesquisar sozinho no site do R.
É frequente encontrarmos problemas de acentuação e na transferibilidade entre sistemas operacionais diferentes (Mac, Linux, Windows). A palavra chave aqui é Encoding de Caracteres.
Se você usa Windows, e no seu gerenciador de arquivos estes aparecem sem extensão (.csv,.txt,.doc, etc.), mude nas suas preferências para não ocultar extensões de arquivos conhecidos. Dessa forma você consegue ver os arquivos pelo tipo (extensão).
Importando arquivos de texto simples
Muitos dados que obtemos online e os próprios scripts do R são do formato mais simples que existe, que são arquivos de texto, geralmente arquivos salvos com extensões .csv ou .txt. Arquivos desse tipo você pode abrir em qualquer editor de texto e em qualquer sistema operacional e em qualquer versão. Isso garante arquivamento, longevidade e transferibilidade. Portanto, é a melhor forma de salvar seus dados e compartilhá-los.
Qualquer arquivo desse tipo pode ser lido pelos os editores de script do R ou RStudio. Pode também exportar planilhas do Excel ou BR-Libre-Open-Offices para esse formato.
É importante atentar em arquivos de texto contendo dados tabulados para:
O separador das colunas pode ser
;, “tabulação” (no R =\t), “vírgula”, qualquer símbolo que indique a separação das colunas (ou seja não está nas células).Casas decimais podem ser
.ou,. Saiba como seus dados estão antes de importar para indicar odelimitadoradequado, ou converter, por exemplo, usandogsub().Datas - colunas com datas constituem um objeto de classe “date” no R, que a converte em número que pode ser usado em operações matemáticas. Dependendo de como seus dados estão formatados no original, é comum inversão de mês com dia entre, por exemplo, o sistema inglês (MM-DD-YYYY) e o sistema português (DD-MM-YYYY). Tenha controle disso.
Por isso, recomenda-se que:
Defina um padrão que você sempre usará para formatar teus dados ANTES de importá-los ao R. Dessa forma você irá memorizar rapidamente como importar os dados do jeito que você sempre prepara;
Padronize o Encoding (UTF8 é padrão Mac e Linux; Latin1 é padrão Windows) em arquivos TXT;
Padronize a decimal (ponto ou vírgula?);
Pradonize a quebra de Linha, i.e., o que indica no texto o início de uma nova linha (novamente diferente entre Mac, Linux e Windows);
Padronize se colunas de texto vão entre aspas;
Padronize como você dá nome às colunas - nome de colunas e de linhas não devem ser muito longos. Evite acentos e espaços em branco em nomes de colunas;
Se você usa planilha, recomendamos usar uma versão de software livre da família BR-Libre-Open-Office, pois na hora de exportar um “*.csv” você tem total controle sobre o “Encoding” e sobre a formatação do arquivo em geral. Tanto para ler como para salvar arquivos de planilhas.
Exemplo
Pacote base
read.table()- esta é a principal função que você irá usar para importar seus dados no R. Ela funciona para importar arquivos em formato de texto simples (.csv, .txt).https://github.com/LABOTAM/IntroR/blob/main/dados/municipiosbrasil.csv - vamos usar este arquivo como exemplo, que contém as coordenadas geográficas dos municípios brasileiros. Baixe o arquivo para sua pasta de trabalho.
-
Abra o arquivo com um editor de texto simples (Bloco de Notas, Notepad++, TextWrangler, Gedit, etc.) e veja como está formatado:
- Qual o separador de colunas? (é tabulação, como seu editor mostra isso);
- Qual o Encoding dos caracteres? (consegue ver e editar isso no seu editor?);
- Qual a quebra de linha? (consegue ver e editar isso no seu editor?
- Aspas duplas ou simples definem colunas? (não tem nenhuma aspas!)
- Abra o arquivo no BR-Libre-OpenOffice de sua preferência:
- Veja os controles na importação quanto aos elementos acima
- Salve o arquivo como *.ods
- Salve novamente como *.csv - veja como você tem controle na exportação quanto aos elementos acima.
Pacote readr
-
read_delim- principal função para ler arquivos do pacotereadr. Funciona de maneira parecida com oread.tablecom algumas pequenas diferenças: não converte colunas de texto que possam ser categorizadas em fatores (read.tablefaz isso por padrão), retorna umtibbleno lugar de um data.frame (tibblessãodata.framesdiferentes na maneira como aparecem no console; além de mostrar apenas uma porção dos dados, para cada coluna há a indicação do tipo de variável presente), assume por padrão que o dado importado possui cabeçalho. Existem outras diferenças que podem ser melhor entendidas no site do pacote: https://github.com/tidyverse/readr. Os argumentos possuem nomes diferentes do que os utilizados emread.tablee, como este, importa arquivos em formato de texto simples (.csv , .txt).
Pacote data.table
-
fread- principal função para ler arquivos do pacotedata.table. Este pacote é muito conhecido devido à velocidade de suas ações, funcionando perfeitamente para dados grandes. Esta função possui uma particularidade: o usuário não precisa indicar o separador; automaticamente ele descobre o separador e lê o arquivo. Em casos especiais, é necessário a indicação do separador com o argumentosep, igual ao read.table. Ao ler um arquivo, a função retorna também umdata.frame, porém com certas particularidas quanto à impressão do resultado na tela do console, como acontece com a funçãoread_delimdo pacotereadr. Mais informações, leiam atentamente o site do pacote: https://github.com/Rdatatable/data.table. O pacote como um todo é uma excelente ferramenta na manipulação de dados. Como os pacotes citados acima, esta função é capaz de importar arquivos em formato de texto simples (.csv , .txt).
Importando o Excel diretamente
Os principais erros aqui podem ser por células unidas, cabeçalhos no topo da planilha, e acentos. Veja o Help das funções usadas para parametros opcionais para resolver isso.
Exportando Dados
Pacote base
-
write.table()é a principal função que você irá usar para exportar seus dados do R. Ela funciona para exportar arquivos em formato de texto simples (.csv, .txt) e usa basicamente os mesmos argumentos da função read.table().
Pacote readr
-
write_delim- principal função do pacote readr para exportardata.framesem formato de texto simples (.csv, .txt) e usa basicamente os mesmos argumentos da funçãoread_delim, pertencente ao mesmo pacote.
Pacote data.table
-
fwrite- principal função do pacote data.table para exportardata.framesem formato de texto simples (.csv, .txt) e usa basicamente os mesmos argumentos da funçãoread_delim, pertencente ao mesmo pacote.
Outras funções úteis
scan()- lê um arquivo de texto em qualquer formato para um vetor ou lista no R. Função genérica que bom conhecer.