Primeiramente, vamos importar formatos de arquivo de conjunto de dados globais. Estes são .txt
e .csv
. No formato .csv
, há uma particularidade de idioma. No padrão (versão em inglês no computador), o separador de dados é ,
(vírgula), mas em computadores com configuração de idioma em alemão, isso muda e o separador de dados é ;
(ponto e vírgula).
Um arquivo .txt
é um arquivo de texto puro onde os dados são separados por tabulação (veja a captura de tela). Aqui também, o formato segue a convenção de ter as variáveis nas colunas e os casos nas linhas. Geralmente, a primeira linha não representa um caso, mas contém, como no exemplo, os nomes das variáveis.
No exemplo, temos um conjunto de dados com quatro variáveis:
idade
, duração
, nota
e exame
.
Ao carregar arquivos, é importante lembrar o que é um caminho de arquivo. Se você não se lembra, volte para o Bloco de Aprendizagem 1. O RStudio Cloud facilita isso, pois o caminho pode ser facilmente selecionado: Em projetos do RStudio, sempre há uma pasta chamada data
, que é acessada da seguinte forma: ./data/
e após a segunda barra, vem o nome do arquivo. Como funciona em uma instalação local, você pode ler mais abaixo. No entanto, isso não é relevante para o curso no momento, já que todos estamos trabalhando com o RStudio Cloud.
No R, o Ambiente é onde podemos ver todos os dados e objetos carregados e salvos.
Para carregar o arquivo .txt (arquivo separado por tabulação) no R, precisamos usar a função read.table()
. Sempre que precisar de ajuda com uma função conhecida, basta colocar um ?
antes dela e deixar os argumentos vazios. Na aba Ajuda na guia Arquivos, serão exibidas informações sobre a função.
Vamos tentar.
# Se precisar de ajuda com a função:
?read.table()
Agora queremos importar os dados para o R para poder trabalhar com eles. Os conjuntos de dados já estão salvos na pasta data
. É melhor nomear os objetos de conjunto de dados de forma que seja intuitivo entender sobre quais dados estamos falando. Dentro da função de importação (read.table()
), basta fornecer o caminho completo para o arquivo. Como a primeira linha do arquivo contém os nomes das variáveis, especificamos em header = TRUE
que os nomes das variáveis estão lá. O argumento sep = "\t"
indica que o separador de dados é uma tabulação.
Temos agora os dados importados e um novo data frame importado, chamado exam
! Este está visível no Environment para você.
Existem uma série de funções auxiliares para obter uma visão geral dos dados importados. Você irá conhecê-las agora.
Para exibir a estrutura do conjunto de dados, chamamos a seguinte função:
str(exam)
## 'data.frame': 20 obs. of 4 variables:
## $ age : int 21 29 27 27 34 34 28 23 30 21 ...
## $ duration: num 0.889 0.889 1.111 1.778 1.778 ...
## $ grade : chr "A" "C" "D" "D" ...
## $ exam : chr "StatII" "EmpI" "StatI" "EmpII" ...
Com a função head()
, podemos ter uma primeira visão dos dados (os primeiros \(6\) casos):
head(exam)
## age duration grade exam
## 1 21 0.8888889 A StatII
## 2 29 0.8888889 C EmpI
## 3 27 1.1111111 D StatI
## 4 27 1.7777778 D EmpII
## 5 34 1.7777778 A StatII
## 6 34 0.8888889 B EmpI
Também podemos exibir mais do que \(6\) casos, adicionando um segundo argumento com o número desejado.
head(
exam,
n = 10 # hier kann die Anzahl verändert werden
)
## age duration grade exam
## 1 21 0.8888889 A StatII
## 2 29 0.8888889 C EmpI
## 3 27 1.1111111 D StatI
## 4 27 1.7777778 D EmpII
## 5 34 1.7777778 A StatII
## 6 34 0.8888889 B EmpI
## 7 28 1.7777778 B StatI
## 8 23 0.8888889 C EmpII
## 9 30 1.7777778 D StatII
## 10 21 2.2222222 D EmpI
Também podemos acessar variáveis individuais dentro do conjunto de dados. Para isso, mencionamos o conjunto de dados e usamos o $
para acessar uma variável específica:
head(exam$grade)
## [1] "A" "C" "D" "D" "A" "B"
Agora que você conseguiu isso, a aplicação em outros formatos de arquivo não é muito mais trabalhosa. Vamos importar um arquivo .csv
a seguir.
Para carregar um arquivo .csv, não precisamos de nenhuma outra biblioteca. A função (como acima) está incluída no R-Base.
O arquivo inclui o mesmo conjunto de dados, mas como um arquivo .csv
.
Precisamos da função read.csv()
ou read.csv2()
. Isso depende se você já abriu o arquivo .csv
em seu computador (Excel ou LibreOffice). Se sim, e o idioma do seu computador for alemão, você deve usar read.csv2()
. Se você nunca abriu o arquivo ou está usando configurações de idioma em inglês, use read.csv()
.
Vamos tentar!
examcsv <- read.csv(
"./data/exam.csv",
header = TRUE
)
examcsv2 <- read.csv2(
"./data/exam.csv",
header = TRUE
)
Aqui está uma captura de tela dos dois conjuntos de dados importados com as diferentes funções.
É importante entender qual formato de arquivo está sendo usado e como importá-lo, pois isso pode evitar facilmente erros durante a importação.
Agora vamos explorar os formatos disponíveis no R!
Quando você estiver trabalhando localmente mais tarde, sempre precisará especificar o caminho direto do arquivo. Ou você pode salvar em um objeto o caminho e usar esse objeto dentro da função auxiliar file.path()
. Isso tem a vantagem de não precisar digitar o caminho o tempo todo, pois é recomendado salvar todos os conjuntos de dados em um único local. Com esse local central, você pode simplesmente criar um objeto que contenha esse caminho como texto. Assim, você cria um objeto, como no bloco de aprendizado 1, que contém character significativo para o caminho. Portanto, o caminho não precisa ser digitado novamente.
Importante: O caminho vai apenas até a pasta onde o arquivo está localizado. O arquivo não é armazenado no objeto path
.
Então, crie um objeto que contenha o caminho. Geralmente chamamos isso de path
.
path <- "C:/Caminho para o arquivo salvo/"
# copie isso do Explorer ou Finder e lembre-se de alterar as barras invertidas para barras normais no Windows
Na função de importação, basta adicionar a função auxiliar file.path()
, onde o primeiro argumento é o objeto path
(o texto para o seu objeto) e o segundo argumento é o nome do arquivo (aqui exam.txt
). Todo o resto permanece como acima!
exam <- read.table(
file.path(
path,
"exam.txt"
),
sep = "\t",
header = TRUE
)