Aula 09 – Curso básico de programação em R
Leitura de arquivo com read table na prática
Endereço para baixar os arquivos e o script:
https://github.com/toticavalcanti/curso_r
LEITURA DE ARQUIVO COM READ TABLE
Para ler e escrever em arquivos, R usa working directory
O comando getwd() obtém o diretório de trabalho e o setwd() define um diretório de trabalho.
#Define o path para ler os arquivos .csv ou qualquer outro formato
setwd("\caminho\para\pasta\suaPasta")
R pode ler dados armazenados em arquivos de texto (ASCII) com as seguintes funções:
read.table, scan e read.fwf.
R também pode ler arquivos em outros formatos (Excel, SAS, SPSS, …) e acessar banco de dados SQLtype, mas as funções necessárias para isso não estão no pacote base do R.
Essas funcionalidades são muito úteis para um uso mais avançado de R, mas, vamos restringir aqui somente para leitura de arquivos no formato ASCII.
A função read.table cria um data frame
É a principal maneira para ler dados em forma de tabela.
Por exemplo, se alguém tiver um arquivo chamado data.dat, o comando:
mydata <- read.table(“data.dat”)
Irá criar um data frame chamado mydata, e cada variável será nomeada, por padrão, V1, V2,. . . Podendo ser acessada individualmente por mydata $ V1, mydata $ V2,
. . . , Ou por mydata [“V1”], mydata [“V2”],. . . , ou ainda de outra forma, por Mydata [, 1], mydata [, 2],. . .
read.table(file, header = FALSE, sep = "", quote = "\"'", dec = ".", row.names, col.names, as.is = FALSE, na.strings = "NA", colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill = !blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE, comment.char = "#")
file | Nome do arquivo (uma string) possivelmente com seu caminho (o símbolo \ não é permitido e deve ser substituído por /, mesmo no Windows), ou um acesso remoto a um arquivo tipo URL (http: // …) |
header | Valor lógico (FALSO ou TRUE) indicando se o arquivo contém os nomes das variáveis em sua primeira linha |
sep | O campo separador usado no arquivo, por exemplo sep = “\t” se for uma tabulação |
quote | Por padrão, as strings são entre aspas duplas (“). Se o arquivo de texto usar aspas simples, você pode especificar isso com o argumento para quote (por exemplo, quote = ” ‘ “, uma aspa simples dentro das aspas duplas). |
dec | O caracter usado para o ponto decimal |
row.names | Um vetor com os nomes das linhas que podem ser um vetor de modo caracter, ou o número (ou o nome) de uma variável do arquivo (por padrão: 1, 2, 3, …) |
col.names | Um vetor com os nomes das variáveis (por padrão: V1, V2, V3, . . . ) |
as.is | Controla a conversão de variáveis de caracteres como fatores (se FALSE) ou as mantém como caracteres (TRUE); as.is pode ser lógica, numérica ou vetor de caracteres especificando as variáveis a serem mantidas como caracter. |
na.strings | O valor dado aos dados ausentes (convertido como NA) |
colClasses | Um vetor de modo caracter que dá as classes para atribuir as colunas |
nrows | O número máximo de linhas a serem lidas (os valores negativos são ignorados) |
skip | O número de linhas a serem ignoradas antes de ler os dados |
check.names | Se VERDADEIRO, verifica se os nomes das variáveis são válidos para R |
fill | Se TRUE e todas as linhas não têm o mesmo número de variáveis espaços em branco são adicionados |
strip.white | (Condicional para sep) se VERDADEIRO, exclui espaços extras antes e depois das variáveis de modo caracter |
blank.lines.skip | Se VERDADEIRO, ignora linhas “em branco” |
comment.char | Define o caracter de comentário no arquivo de dados, o resto da linha após este caracter é ignorado ( para desativar esse argumento, use Comment.char = “” ) |
As variantes de read.table são úteis, uma vez que têm diferentes valores padrões:
read.csv(file, header = TRUE, sep = ",", quote="\"", dec=".", fill = TRUE, ...)
read.csv2(file, header = TRUE, sep = ";", quote="\"", dec=",", fill = TRUE, ...)
read.delim(file, header = TRUE, sep = "\t", quote="\"", dec=".", fill = TRUE, ...)
read.delim2(file, header = TRUE, sep = "\t", quote="\"", dec=",", fill = TRUE, ...)