Importação de .txt e .csv

  • .DS_Store (6 KB)
  • exam.csv (666 B)
  • exam.txt (484 B)
  • 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).

    Importar um arquivo .txt

    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.

    Exemplo de arquivo .txt No exemplo, temos um conjunto de dados com quatro variáveis: idade, duração, nota e exame.

    Pense por um momento no que as variáveis poderiam significar?

    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ê.

    Estrutura de um conjunto de dados

    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.

    Importando um arquivo .csv

    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.

    exam com read.csv()
    exam com read.csv()
    exam com read.csv2()
    exam com read.csv2()
    Veja as capturas de tela e pense um pouco (com o conhecimento acima), por que elas são importadas de forma diferente?

    É 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!

    Trabalho Local

    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  
    )