Como importar dados em .csv no R
Um tutorial básico usando o R-base
Uma das tarefas mais básicas no R
é importar dados. E, dentre todos os
tipos de formatos mais usados para armazenar dados, .csv
(ou
comma-separated
values, em
inglês) talvez seja o mais comum. Dados demográficos do Instituto Brasileiro de Geografia e
Estatística, dados sobre os gastos do
governo federal, por
exemplo, vêm neste formato.
Assim como outros ambientes de programação e softwares, o R
possui
facilidades nativas para importar este tipo de arquivo. Aqui, vou
mostrar uma forma de fazer isto.
Importando dados em .csv com read.csv
A primeira forma de carregar dados em .csv no R
, e também a mais
simples, é por meio da função
read.csv().
Por exemplo, vamos supor que queremos abrir um arquivo chamado
dados.csv
que está localizado no diretório de trabalho no R
(é
possível verificar o diretório corrento com a função getwd
). O
procedimento é simples:
df <- read.csv(file = "dados.csv")
Basicamente, este código apenas atribui a um objeto df
o resultado da
função read.csv
, que serve justamente para importar o conteúdo de um
arquivo em .csv
. O único argumento que precisamos definir foi file
,
que é onde devemos especificar o endereço do arquivo (como supomos que o
arquivos dados.csv
estava no diretório local, apenas o nome do arquivo
completo foi necessário; mas é possível especificar outros endereços,
como “C:/Pasta/dados.csv”).
A função read.csv
também possui outros argumentos úteis. O primeiro
deles header
, que especifica se a primeira linha contém o nome das
variáveis (TRUE
é o padrão) ou não (para o caso do arquivo não ter o
nome das variáveis). O segundo argumento é sep
, que indica qual o
caractere usado para separar as observações de cada linha (lembrando que
um .csv
é um tipo de arquivo de texto que apenas separa informações
por meio de algum caractere); normalmente, este caractere é ;
(ponto e
vírgula), mas também é comum o uso de ,
(vírgula) ou \t
(tab). Erros
de importação, como quando o R
junta todas as observações numa mesma
variável, geralmente ocorrem por falta de especificar corretamente este
argumento. Podemos melhorar nossa chamada à função read.csv
com estes
argumentos:
df <- read.csv(file = "dados.csv", header = TRUE, sep = ";")
Com este código, deixamos explícito que a primeira linha do arquivo
.csv
contém o nome das variáveis, e que o caractere usado para separar
as observações é ponto e vírgula.
Outros argumentos úteis da função read.csv
Normalmente, apenas file
, header
e sep
precisam ser especificados
para abrir corretamente um .csv
. Mas, em alguns casos, problemas
adicionais podem tornar necessário o uso de outros argumentos da função.
Abaixo, listo três outros deles:
-
stringsAsFactors: por padrão, a função
read.csv
transforma variáveis que contêm caracteres emfactor
, o que normalmente não é útil. Para desabilitar isto, basta especificar na chamada à funçãostringsAsFactors = FALSE
-
fill: nem sempre arquivos
.csv
possuem todos os valores ordenados no formato correto (por exemplo, uma observação pode ter sido pulada), o que pode gerar erros ao carregá-los.fill = FALSE
pode solucionar problemas como este. -
dec: caractere usado para separar as casas decimais de variáveis numéricas. Muitos bancos vêm com vírgulas cumprindo esta função (30,00, por exemplo); neste caso, é possível declarar
dec = ","
para fazer com que a função leia corretamente os dados.