# Caminho onde o script está salvo
source("/home/usuario/Área de Trabalho/script.R")
5 Importação e exportação de dados
Uma das habilidades básicas necessárias para se fazer análises com o R é importar arquivos e fazer conexões com, por exemplo, bancos de dados, e exportar os resultados obtidos em formatos que possam ser lidos pela maioria dos softwares atuais.
5.1 Importando arquivos
Vamos aqui listar algumas funções úteis para a importação de arquivos no R.
source()
A função source()
carrega arquivos de scripts em R e executa os comandos ali contidos.
load()
A função load()
permite o carregamento de arquivos binários reconhecíveis pelo R. A extensão .RData é reconhecida pelo RStudio.
# Caminho onde o .RData está salvo
load("/home/usuario/Área de Trabalho/arquivo.RData")
5.2 Importando dados tabulares
A principal função para importar dados tabulares (tabelas, planilhas, etc.) para o R é a read.table()
. Esta função possui vários argumentos que podem ser modificados.
Antes de carregar dados tabulares no R, é importante saber como o dado está organizado (se a separação entre as colunas é feita por tabulação ou por vírgula, por exemplo.)
Alguns argumentos cuja modificação pode ser útil para a importação da tabela:
file
: caminho do diretório onde o arquivo está.header
: seFALSE
, não considera o cabeçalho (se houver) da tabelasep
: como o dado está separado. Se por tabulação,sep = "\t"
, se por vírgula,sep = ","
dec
: como os números decimais são definidos, se com “.” ou “,”.col.names
erow.names
: recebem um vetor contendo os nomes das colunas e das linhas, respectivamente.quote
: atribui um caracter para as aspas. Por padrão, atribui ““.comment.char
: atribui um caracter para ser usado como comentário.skip
: valor numérico. Pula a importação da quantidade definida de linhas.stringsAsFactors
: se uma das colunas da tabela for um vetor de caracteres, a opçãoTRUE
a considera como um vetor de fatores.
Outras duas funções bastante utilizadas são derivadas da função read.table()
. Estas possuem os mesmos argumentos da função read.table()
.
read.delim()
: por default, considera o argumentosep = "\t"
. Útil para a importação de arquivos cujos elementos são separados por tabulações.read.csv()
: por default, considera o argumentosep = ","
. Útil para leitura de arquivos .csv.
5.3 Importando arquivos de estrutura desconhecida
Quando lidamos com arquivos dos quais desconhecemos a sua estrutura, podemos dispor de algumas estratégias para facilitar a importação deles para o R.
Podemos usar a função readLines()
. Esta função pode abrir uma conexão (ver adiante) com um arquivo e ler o conteúdo de suas linhas. A saída da função é um vetor de caracteres, onde o conteúdo de cada linha do arquivo original compreenderá uma posição do vetor de saída. Este procedimento pode revelar como o dado está organizado: se é um dado tabulado, como os elementos de cada coluna estão separados, etc.
# Irá ler as 10 primeiras linhas do arquivo
readLines("COG.mappings.v9.0.txt", 10)
Uma outra forma de desvendar a estrutura de um arquivo é usando a função scan()
. A saída da função scan()
é um vetor de caracteres onde cada string do arquivo original compreenderá uma posição do vetor de saída.
scan(file = 'COG.mappings.v9.0.txt', nlines = 10, what = character())
5.4 Conexões
As funções citadas anteriormente tem em comum a capacidade de abrirem conexões com arquivos e extraírem as informações neles contidas. Além destas, o R possui muitas outras funções para lidar com outros tipos de arquivos e dados externos ao R.
Pode-se também estabelecer conexões com sites da web:
# url() abre uma conexão com arquivo web
<- url("http://www.tribunadonorte.com.br/", "r", 10)
con <- readLines(con)
x 1:10]
x[close(con)
5.5 Salvando arquivos
Os objetos do R podem ser salvos em arquivos .RData por meio da função save()
. Uma quantidade indeterminada de objetos podem ser salvos no mesmo arquivo .RData.
save(unido, biometria, esportes, file = "arquivo.RData")
Outra funcionalidade útil é a exportação de objetos tabulares do R para arquivos de texto. Para isso, usamos a função write.table()
. Esta função possui argumentos semelhantes aos da função read.table()
.
Ao usar a função write.table()
, é importante definir o diretório no qual o arquivo será salvo e o tipo de separador usado para separar os elementos (argumento sep
). Segue a seguinte estrutura:
write.table(<objeto>, file = <diretório de destino>, sep = <separador>)
Exemplo:
write.table(table1, file = "arquivo.txt", sep = "\t", row.names = FALSE, quote = FALSE)
Além disso, também como a função read.table()
, write.table()
possui outras funções genéricas como write.csv()
, por exemplo, a qual possui o argumento sep = ","
por default.
5.6 Desafio
Os desafios a seguir foram criados para ajudá-lo a desenvolver suas habilidades de forma independente.
Evite o uso de Inteligência Artificial e tente resolver os problemas por conta própria.
Aprender com a prática fortalecerá seu raciocínio e aprofundará seu conhecimento! 🚀
Este exercício será feito usando o arquivo ‘happiness.csv’ em content/data/hapiness.csv
- Neste exercício, vamos importar uma tabela (em arquivo de texto) como um dataframe, fazer algumas operações e em seguida vamos salvar o resultado em um outro arquivo de texto. Antes de importar o arquivo, verifique sua estrutura (como as colunas estão separadas, se tem cabeçalho, etc.)
Importe o arquivo corretamente e o armazene em uma variável. Obs.: A tabela possui alguns campos numéricos onde o separador decimal é uma vírgula. Importe a tabela de modo que as vírgulas sejam transformadas em pontos (procure ajuda na documentação das funções de importação vistas na aula).
Verifique se a classe das colunas do dataframe condizem com o tipo de dado armazenado. Por exemplo, a coluna dos países é um vetor de caracter?
Crie um subset do dataframe contendo apenas as informações dos países da América Latina e Caribe.
De acordo com o rank de felicidade, qual país da América Latina é o mais feliz?
Crie um outro subset contendo apenas os países europeus. Calcule a média de felicidade (baseando-se no score de felicidade) dos países europeus e dos países da América Latina. Em qual região as pessoas são mais felizes?
Salve o dataframe com as informações da América Latina em um arquivo de texto. Ele deve utilizar como separador o ‘;’.