Capítulo 4 Importando e exportando dados

4.1 Formatos de arquivos de dados

Dados para análise estatística podem estar em diversos formatos (tipos de arquivos). O usuário poderia, por exemplo, ter criado um arquivo num software de planilha eletrônica, ou no próprio pacote estatístico que será utilizado. Alguns dos formatos mais usados são mostrados a seguir:

  • Planilha eletrônica (.xls, .xlsx, .ods)
  • Valores separados por vírgulas (.csv)
  • Dbase (.dbf)
  • Diversos Pacotes estatísticos: (.Rdata - R), (.sav - SPSS), etc

A figura 4.1 mostra um arquivo no formato do Excel com o nome Melanoma.xlxs, com a mesma estrutura do conjunto de dados Melanoma do pacote MASS ( GPL-2 | GPL-3) do R. Na primeira linha, aparecem os nomes das variáveis. As demais linhas contêm os valores de cada variável para cada paciente.

Numa planilha com essa estrutura, cada linha do arquivo é chamada de Registro ou Observação. Ao conjunto de registros, denominamos conjunto de dados ou arquivo de dados. Observem que cada coluna do conjunto de dados contêm os valores da variável identificada na primeira linha e que deve ser de uma classe do R previamente especificada. Os arquivos a serem analisados em um pacote estatístico devem possuir uma estrutura semelhante.

O conjunto de dados Melanoma contém dados de 205 pacientes na Dinamarca com melanoma maligno. As seguintes variáveis foram coletadas nesse estudo (Andersen et al. 1993):
- time: tempo de sobrevida em dias, possivelmente censurado;
- status: 1 - morreu de melanoma, 2 - vivo, 3 - morreu por outras causas:
- sex: 1 - masculino, 0 - feminino;
- age: idade em anos;
- year: ano da operação;
- thickness: espessura do tumor em mm;
- ulcer: 1 = presença, 0 = ausência;

Exemplo de um arquivo de dados no formato do Excel, com o nome Melanoma.xlxs. Fonte: conjunto de dados Melanoma do pacote MASS ( GPL-2 | GPL-3).

Figura 4.1: Exemplo de um arquivo de dados no formato do Excel, com o nome Melanoma.xlxs. Fonte: conjunto de dados Melanoma do pacote MASS ( GPL-2 | GPL-3).

A figura 4.2 mostra o conjunto de dados Melanoma no formato csv (Melanoma.csv) com as variáveis e valores exportados a partir do Excel. Esse arquivo foi aberto num editor de texto. Apesar da extensão se chamar valores separados por vírgulas (comma separated values, em inglês), podemos usar outro caractere para separar os valores. No exemplo, foi utilizado o ponto e vírgula. O formato .csv é muito útil, porque todo pacote estatístico consegue importar um arquivo deste tipo. Assim, quando desejamos analisar dados gerados pelo Epi Info no pacote SPSS, por exemplo, podemos exportar os dados do Epi Info para uma arquivo com a extensão csv e, a seguir, importar esse arquivo para o SPSS.

Este capítulo mostra como importar arquivos para o R, salvar e carregar arquivos no formato do R, exportar conjuntos de dados do R para outros formatos e ler conjuntos de dados disponíveis em pacotes do R.

Arquivo Melanoma.csv gerado a partir do arquivo do Excel mostrado na figura 4.1.

Figura 4.2: Arquivo Melanoma.csv gerado a partir do arquivo do Excel mostrado na figura 4.1.

4.2 Importação de dados do Excel (.xls/.xlsx) usando o RStudio

O conteúdo dsta seção pode ser visualizado neste vídeo.

Nesta seção, vamos mostrar como importar para o R, a partir do RStudio, um arquivo de dados do Excel. Como exemplo, será utilizado o arquivo Melanoma.xlsx, citado na seção anterior e disponível neste endereço.

Vamos supor que, ao baixarmos o arquivo Melanoma.xlsx, ele esteja localizado na pasta temp do disco C de uma partição Windows.

Ao abrirmos o RStudio, selecionamos o item Import dataset do menu File e, em seguida, selecionamos a opção From Excel… (figura 4.3). Essa sequência de passos pode ser apresentada como:

\[\text{File} \Rightarrow \text{Import dataset} \Rightarrow \text{From Excel...}\]

Sempre que uma opção de menu for apresentada, os passos para selecioná-la serão mostrados como acima, tanto no RStudio quanto no R Commander.

Opção do menu do RStudio para realizar a importação de dados do Excel.

Figura 4.3: Opção do menu do RStudio para realizar a importação de dados do Excel.

Na caixa de diálogo para importação do arquivo, clicamos no ícone Browser (seta verde na figura 4.4), localizamos e selecionamos o arquivo de dados desejado (figura 4.5).

Tela do RStudio para importar um arquivo de dados do Excel. A seta verde indica o botão para navegar no sistema de arquivo e localizar o arquivo a ser importado.

Figura 4.4: Tela do RStudio para importar um arquivo de dados do Excel. A seta verde indica o botão para navegar no sistema de arquivo e localizar o arquivo a ser importado.

Caixa de diálogo para abrir o arquivo a ser importado do Excel para o R.

Figura 4.5: Caixa de diálogo para abrir o arquivo a ser importado do Excel para o R.

Ao clicarmos em Open na figura 4.5, é preciso configurar as opções para a importação do arquivo (figura 4.6). Nessa tela, podemos selecionar que planilha (sheet) será importada, o número máximo de registros a serem importados (Max Rows), a partir de que registro os dados serão lidos (Skip), como valores faltantes (missing) são representados na planilha (NA), se a primeira linha da planilha contém os nomes das variáveis (First Row as Names) e se os dados serão exibidos no RStudio (Open Data Viewer). Uma pré-visualização dos dados também é mostrada nessa tela. Se o número máximo de linhas não for especificado, todos os registros serão importados. Se o valor de Skip não for especificado, os dados serão importados a partir do primeiro registro. A área de Code Preview mostra os comandos que serão executados no RStudio.

Tela do RStudio com a configuração para importar o arquivo de dados Melanoma.xlsx.

Figura 4.6: Tela do RStudio com a configuração para importar o arquivo de dados Melanoma.xlsx.

Ao clicarmos no botão Import, os dados serão importados para o R (figura 4.7). A tela superior à esquerda abre o visualizador dos dados do arquivo Melanoma.xlsx. Na aba Environment, a seta verde indica o objeto Melanoma, que contém os dados importados. Esse objeto é da classe data.frame. Ao clicarmos em Melanoma, a estrutura do conjunto de dados é mostrada abaixo.

Tela do RStudio após a importação dos dados do Excel.

Figura 4.7: Tela do RStudio após a importação dos dados do Excel.

Na área da console do RStudio, são mostrados os comandos executados na importação do arquivo do Excel (seta alaranjada).

A primeira função, library, carrega o pacote readxl, que contém funções para importar um arquivo do Excel para o R. As funções library ou require, são usadas para carregar pacotes no R. Todo pacote, com exceção daqueles que já são carregados ao executar o R, precisa ser carregado quando desejarmos executar funções ou ler conjuntos de dados contidos nesses pacotes.

O comando seguinte, Melanoma <- read_excel("~/temp/Melanoma.xlsx"), lê o arquivo Melanoma.xlsx e o carrega no objeto da classe data.frame, chamado Melanoma. Finalmente a última função, View, exibe o conteúdo do objeto Melanoma no RStudio.

Observem que a função read_excel() foi chamada com somente um argumento: o caminho e o nome do arquivo a ser importado. Se solicitarmos a ajuda para essa função (help("read_excel")), iremos verificar que diversos outros argumentos poderiam ser especificados para definir como os dados serão importados. Alguns argumentos, como skip, sheet, na, n_max, e range, poderiam ser configurados na tela de importação de um arquivo do Excel no RStudio. Quando esses argumentos não forem alterados na tela de importação, eles não precisam ser especificados na linha de comando, porque a função irá considerar os valores padrões (default).

Ao especificarmos o nome do arquivo, é necessário especificar todo o caminho até chegar ao arquivo, por exemplo: file = "c:/temp/Melanoma.xlsx" (Windows), se o arquivo estiver na pasta temp do disco C.

Observem o uso da barra comum (não invertida). Podemos usar as barras invertidas, desde que elas sejam duplicadas:
file = "c:\\temp\\Melanoma.xlsx"

Nas distribuições do linux, usaríamos, por exemplo, file="/home/sergio/temp/Melanoma.xlsx" ou file="~/temp/Melanoma.xlsx", como foi utilizado no comando acima..

Para visualizarmos os primeiros registros de Melanoma via linha de comando, podemos usar a função head com dois argumentos, o primeiro é o nome do data frame, o segundo indica o número de registros a serem lidos. Se esse número não for especificado, serão mostrados 6 registros:

## # A tibble: 10 × 7
##     time status   sex   age  year thickness ulcer
##    <dbl>  <dbl> <dbl> <dbl> <dbl>     <dbl> <dbl>
##  1    10      3     1    76  1972      6.76     1
##  2    30      3     1    56  1968      0.65     0
##  3    35      2     1    41  1977      1.34     0
##  4    99      3     0    71  1968      2.9      0
##  5   185      1     1    52  1965     12.1      1
##  6   204      1     1    28  1971      4.84     1
##  7   210      1     1    77  1972      5.16     1
##  8   232      3     0    60  1974      3.22     1
##  9   232      1     1    49  1968     12.9      1
## 10   279      1     0    68  1971      7.41     1

A função tail possui os mesmos argumentos de head, mas mostra as últimas n linhas especificadas pelo segundo argumento:

## # A tibble: 10 × 7
##     time status   sex   age  year thickness ulcer
##    <dbl>  <dbl> <dbl> <dbl> <dbl>     <dbl> <dbl>
##  1  4124      2     0    30  1966      1.94     1
##  2  4207      2     1    22  1966      0.65     0
##  3  4310      2     1    55  1966      2.1      0
##  4  4390      2     0    26  1965      1.94     1
##  5  4479      2     0    19  1965      1.13     1
##  6  4492      2     1    29  1965      7.06     1
##  7  4668      2     0    40  1965      6.12     0
##  8  4688      2     0    42  1965      0.48     0
##  9  4926      2     0    50  1964      2.26     0
## 10  5565      2     0    41  1962      2.9      0

A função names(data frame) retorna os nomes das variáveis no data frame. Como os data frames são listas (vide capítulo anterior), cada coluna, ou variável, pode ser acessada por meio do sinal “$”, ou também por meio do número da coluna no data frame. Vejam os exemplos abaixo:

## [1] "time"   "status" "sex"    "age"    "year"
## [1] 52.46341
## [1] 5565

4.3 Importando dados em outros formatos no RStudio

A figura 4.3 mostra outras opções de importação de dados para o R a partir de outros formatos. A partir do RStudio, podemos importar dados diretamente de diversos programas estatísticos.

Arquivos textuais, por exemplo com a extensão csv, txt e dat podem ser importados por meio das opções “From Text (readr)…” ou “From Text (base)…”. Como virtualmente todos os programas estatísticos exportam dados para o formato csv, podemos importar para o R dados de qualquer programa estatístico.

4.4 Importando arquivos pelo R Commander

Os conteúdos desta seção e da seguinte podem ser visualizados neste vídeo.

É possível também importar dados para o R a partir do R Commander, por meio da opção de menu (figura 4.8):

\[\text{Dados} \Rightarrow \text{Importar arquivo de dados}\]

Opções de importação de dados a partir do R Commander.

Figura 4.8: Opções de importação de dados a partir do R Commander.

As opções de importação do R Commander incluem aquelas do RStudio.

Vamos realizar a importação do arquivo Melanoma.xlsx pelo R Commander. Usamos a opção do menu mostrada na figura 4.8:

\[\text{Dados} \Rightarrow \ \text{Importar arquivo de dados} \Rightarrow \text{do arquivo Excel}\]

As opções de importação de planilhas do Excel a partir do R Commander são mostradas na figura 4.9. São mostradas menos opções do que no RStudio.

É necessário dar um nome para o conjunto de dados. Como a primeira linha do arquivo contém os nomes das variáveis, é preciso marcar a opção Nome da variável na primeira linha da planilha.

Como a primeira coluna da planilha não contém os nomes das linhas, essa opção deve ser deixada desmarcada. Como a planilha não possui variáveis do tipo character, a opção Converter caracter para fator pode ser ou não desmarcada.

Finalmente é preciso especificar o símbolo para os dados ausentes. Nesse exemplo, não há dados ausentes na planilha.

Ao clicarmos em OK, é preciso selecionar o arquivo a ser importado (figura 4.10) e clicar em Abrir.

Opções de importação de dados do Excel a partir do R Commander.

Figura 4.9: Opções de importação de dados do Excel a partir do R Commander.

Seleção do arquivo do Excel a ser importado pelo R Commander.

Figura 4.10: Seleção do arquivo do Excel a ser importado pelo R Commander.

O arquivo é importado e o comando gerado na área de script é mostrado abaixo:

Observem que o R Commander utiliza uma função diferente (readXL) da utilizada pelo RStudio para importar uma planilha do Excel. Pacotes diferentes do R podem possuir funções com objetivos semelhantes.

4.5 Exportando arquivos pelo R Commander

Eventualmente pode ser necessário exportar os dados no formato do R para um formato textual para ser aberto em outro programa. Para exportarmos um conjunto de dados aberto no R para o formato de texto (.txt, .csv, .dat, etc), selecionamos a opção do R Commander:

\[\text{Dados} \Rightarrow \text{Conjunto de dados ativo} \Rightarrow \text{Exportar conjunto de dados ativo...}\]

Na figura 4.11, selecionamos as opções de exportação. Nesse exemplo, vamos escrever os nomes das variáveis na primeira, não incluir os nomes das linhas, usar NA como valores ausentes e “;” como separador dos campos.

Caixa de diálogo configurar a exportação de um conjunto de dados para um arquivo texto.

Figura 4.11: Caixa de diálogo configurar a exportação de um conjunto de dados para um arquivo texto.

Ao pressionarmos o botão OK, definimos então o nome e a extensão do arquivo que será gravado (4.12). Ao pressionarmos o botão Salvar, o arquivo será gravado na pasta escolhida.

Caixa de diálogo para nomear o arquivo e definir a extensão do arquivo texto no qual o conjunto de dados será exportado.

Figura 4.12: Caixa de diálogo para nomear o arquivo e definir a extensão do arquivo texto no qual o conjunto de dados será exportado.

O comando abaixo realizou a exportação do conjunto de dados Melanoma para um arquivo csv.

4.6 Salvando e carregando um arquivo de dados no formato do R

O conteúdo desta seção pode ser visualizado neste vídeo.

Para salvarmos um arquivo de dados no formato utilizado pelo R, vamos utilizar o R Commander e salvar o conjunto de dados Melanoma, importado do Excel anteriormente.

Caso o R Commander não tenha sido carregado ainda, digite o comando abaixo na console do RStudio:

Inicialmente, temos que ativar o conjunto de dados Melanoma no R Commander. Isso pode ser feito, clicando no botão Não há conjunto de dados ativo (seta verde na figura 4.13).

Botão para selecionar um conjunto de dados ativo no R Commander.

Figura 4.13: Botão para selecionar um conjunto de dados ativo no R Commander.

Na caixa de diálogo Selecione o conjunto de dados (figura 4.14), selecionamos Melanoma e clique em OK. Agora o conjunto de dados Melanoma aparece como rótulo no botão onde antes o rótulo era Não há conjunto de dados ativo (seta vermelha na figura 4.15).

Seleção do conjunto de dados a ser ativado no R Commander.

Figura 4.14: Seleção do conjunto de dados a ser ativado no R Commander.

Tela do R Commander após a seleção do conjunto de dados Melanoma. A seta vermelha indica o nome do conjunto de dados. A seta verde mostra o botão para visualizar os dados do data frame Melanoma.

Figura 4.15: Tela do R Commander após a seleção do conjunto de dados Melanoma. A seta vermelha indica o nome do conjunto de dados. A seta verde mostra o botão para visualizar os dados do data frame Melanoma.

Para visualizarmos o conjunto de dados no R Commander, clicamos no botão Ver conjunto de dados na tela do R Commander (seta verde na figura 4.15). A figura 4.16 mostra os dados do arquivo Melanoma.

Dados do arquivo Melanoma importados para o R.

Figura 4.16: Dados do arquivo Melanoma importados para o R.

Para salvarmos o conjunto de dados ativo em um arquivo que possa ser lido diretamente pelo R, selecionamos a opção:

\[\text{Dados} \Rightarrow \text{Conjunto de dados ativo} \Rightarrow \text{Salvar conjunto dados ativo...}\]

Na caixa de diálogo Salvar como (figura 4.17), navegamos para a pasta onde desejamos salvar o arquivo e especificamos um nome para ele, de preferência com a extensão .RData. Clicamos em Salvar.

Especificação do nome do arquivo a ser gravado.

Figura 4.17: Especificação do nome do arquivo a ser gravado.

O comando executado na área de Script do R Commander foi:

Para salvarmos um data frame em um arquivo que possa ser lido pelo R posteriormente, sem necessidade de importação, usamos a função save.

Se você solicitar a ajuda para essa função, verá os seus argumentos. Na forma mais simples, temos que especificar o nome do data frame a ser salvo e o nome do arquivo que será gravado no disco.

O nome do arquivo poderia ser qualquer nome válido. Se o arquivo estiver em outra pasta que não a pasta de trabalho corrente, então devemos especificar o caminho para o arquivo no argumento file. A extensão RData é frequentemente usada para representar arquivos que contêm objetos que podem ser carregados no R.

Vamos supor que o arquivo tenha sido gravado com o nome Melanoma.RData. Em uma outra sessão do R, para carregarmos o arquivo no R Commander para ser analisado, usamos a opção:

\[\text{Dados} \Rightarrow \text{Carregar conjunto de dados}\]

Na caixa de diálogo Abrir, navegamos para a pasta onde o arquivo esteja localizado, o selecionamos e clicamos no botão Abrir (figura 4.18).

Carregando um arquivo de dados no formato do R.

Figura 4.18: Carregando um arquivo de dados no formato do R.

Para carregarmos o conjunto de dados Melanoma.RData, é necessário usar a função load(nome_do_arquivo), sem esquecermos de especificar o caminho do arquivo na árvore de diretórios, se o arquivo não estiver no diretório de trabalho corrente:

O data frame é carregado no objeto com o mesmo nome com que havia sido salvo.

4.7 Carregando conjuntos de dados disponíveis em pacotes do R

O conteúdo desta seção pode ser visualizado neste vídeo.

Muitos pacotes do R contêm conjuntos de dados que podem ser utilizados para ilustrar os recursos disponíveis no pacote. O conjunto de dados Melanoma, que utilizamos nas seções anteriores, também está disponível no pacote MASS do R e poderia ser carregado a partir desse pacote.

Vamos carregar um outro conjunto de dados já disponível em um pacote do R. Trata-se do conjunto de dados juul2 do pacote ISwR.

Se o leitor acompanhou o tour do R (capítulo 2) e instalou o pacote ISwR no início daquele capítulo, não será necessário realizar as instruções de instalação do pacote a seguir. Os passos para a instalação do pacote ISwR são os mesmos utilizados para a instalação do R Commander, seção 1.3 ou seção 1.5. Alternativamente podemos digitar diretamente o comando a seguir na console do RStudio e pressionar a tecla Enter. Como o nome indica, a função install.packages instala o pacote especificado entre aspas.

Antes de abrirmos o conjunto de dados juul2, é preciso carregar o pacote ISwR (GPL-2 | GPL-3). Para isso, podemos digitar library(ISwR) na console do RStudio e pressionar a tecla Enter, mas vamos fazer isso no R Commander. Na área de script do R Commander, digitamos library(ISwR) e, com o cursor na linha do comando, clicamos no botão Submeter (figura 4.19).

Tela do R commander, com a digitação da função library(ISwR) na área de Script.

Figura 4.19: Tela do R commander, com a digitação da função library(ISwR) na área de Script.

Ao submetermos a função, ela aparece na console do RStudio (figura 4.20) e, se houver alguma coisa errada, uma mensagem de erro aparecerá abaixo da função na console do RStudio.

Console do RStudio após a execução da função library(ISwR) conforme mostrado na figura 7.3.

Figura 4.20: Console do RStudio após a execução da função library(ISwR) conforme mostrado na figura 7.3.

Alternativamente, o pacote ISwR poderia ser carregado por meio da opção de menu do R Commander:

\[\text{Ferramentas} \Rightarrow \text{Carregar pacote(s)...}\]

A função library(ISwR) carregou a biblioteca ISwR, a qual contém uma série de conjuntos de dados que podemos utilizar. Para visualizarmos e, eventualmente, selecionarmos um desses conjuntos de dados, selecionamos a opção abaixo no R Commander:

\[\text{Dados} \Rightarrow \text{Conjunto de dados em pacotes} \Rightarrow \text{Ler conjunto de dados de pacotes 'atachados'}\]

Na tela Leia dados do pacote, observem que alguns pacotes de dados aparecem na área à esquerda da figura 4.21: carData, datasets, ISwR e sandwich. Para vermos a lista dos conjuntos de dados em ISwR, damos um duplo clique nesse pacote e uma lista de conjuntos de dados será mostrada à direita. Rolamos essa lista e selecionamos o conjunto juul2. Para sabermos a que esse conjunto de dados se refere, clicamos no botão Ajuda para o conjunto de dados selecionado (seta verde na figura). Uma descrição desse conjunto de dados será exibida na aba Help do RStudio (figura 4.22). Ao clicarmos no botão OK na figura 4.21, após termos selecionado juul2, esse conjunto de dados será carregado no R Commander (figura 4.23).

Visualizando a lista de conjuntos de dados do pacote ISwR e solicitando a ajuda para o conjunto juul2 (seta verde).

Figura 4.21: Visualizando a lista de conjuntos de dados do pacote ISwR e solicitando a ajuda para o conjunto juul2 (seta verde).

Texto com a descrição do conjunto de dados juul2 exibido no navegador de seu computador.

Figura 4.22: Texto com a descrição do conjunto de dados juul2 exibido no navegador de seu computador.

Tela do R commander após o carregamento do conjunto de dados juul2. Observem a função que foi executada – data(juul2, package="ISwR") – e o nome do conjunto selecionado (seta verde).

Figura 4.23: Tela do R commander após o carregamento do conjunto de dados juul2. Observem a função que foi executada – data(juul2, package="ISwR") – e o nome do conjunto selecionado (seta verde).

Observem as funções que foram executadas no R Commander e também são exibidas na console do RStudio:

A função help, como visto no capítulo anterior, mostra uma ajuda sobre o conjunto de dados juul2 do pacote ISwR.

A função data(juul2, package="ISwR") carrega o conjunto de dados juul2 que passa a ser o conjunto de dados ativo no R Commander. Observem o nome dele ao lado do rótulo conjunto de dados (seta verde na figura 4.23). Esse objeto pode ser acessado pelo próprio nome (juul2 neste caso).

Na console do RStudio, aparece a seguinte mensagem abaixo do comando, indicando o número de registros e de variáveis no conjunto de dados juul2:

RcmdrMsg: [2] NOTA: Os dados juul2 tem 1339 linhas e 8 colunas.

4.8 Exercícios

  1. Vamos trabalhar com o conjunto de dados denominado stroke do pacote ISwR (GPL-2 | GPL-3). No R Commander, faça as atividades seguintes.

    1. Verifique a ajuda para o conjunto de dados.
    2. Carregue o conjunto de dados.
    3. Visualize o seu conteúdo.
    4. Grave os dados em um arquivo do R.
    5. Carregue no R Commander o arquivo que foi gravado no item d.
  2. Repita o exercício anterior com o conjunto de dados VA do pacote MASS (GPL-2 | GPL-3).

  3. Importe o arquivo Melanoma para o R. Visualize os dados e salve o conjunto de dados em um arquivo no formato do R.

Referências

Andersen, P K, O Borgan, R D Gill, and N Keiding. 1993. Statistical Models Based on Counting Processes. Springer.