Ler ficheiros xlsx em R

Gustavo du Mortier 25 fevereiro 2021
  1. Deixar o utilizador especificar o ficheiro a importar
  2. Utilize a biblioteca openxlsx para ler o ficheiro xlsx em R
Ler ficheiros xlsx em R

A forma mais comum de obter dados de uma folha de cálculo Excel e importá-los para R é utilizar o Excel para guardar os dados num formato mais convencional, como .csv. Mas se precisar de importar ficheiros xlsx repetidamente, uma opção mais rápida, como utilizar um pacote para importar ficheiros Excel directamente para R, é preferível.

Muitos pacotes em R têm a capacidade de ler ficheiros xls/xlsx. Um deles é o readxl. Este pacote tem menos dependências externas do que outros pacotes, o que facilita a instalação em quase todos os sistemas operativos. A forma mais simples de o adicionar ao seu ambiente R é instalar toda a biblioteca tidyverse com o seguinte comando:

install.packages("tidyverse")

Mas uma vez que não é uma biblioteca tidyverse central, ainda precisa de ser carregada explicitamente com o comando library(readxl). Depois poderá importar um ficheiro Excel com a função read_excel, desta forma:

MySheet <- read_excel("ExcelFile.xlsx")

No exemplo anterior, importamos o conteúdo de uma folha de cálculo chamada ExcelFile.xlsx para uma moldura de dados chamada MySheet.

Deixar o utilizador especificar o ficheiro a importar

Se não souber a localização do ficheiro Excel com antecedência e quiser deixar o utilizador escolher o ficheiro para ler, pode utilizar file.choose() em vez de especificar explicitamente o caminho do ficheiro:

MySheet <- read_excel(file.choose())

A função read_excel() tem outros parâmetros para especificar uma determinada folha a importar ou especificar um valor representando NAs em vez de células em branco. Neste exemplo, estamos a importar uma folha chamada data e a indicar que as células com o conteúdo NA serão interpretadas como NAs:

MySheet <- read_excel("ExcelFile.xlsx", sheet = "data", na = "NA")

Utilize a biblioteca openxlsx para ler o ficheiro xlsx em R

Outro pacote que pode utilizar para ler ficheiros Excel em R é openxlsx. Este pacote simplifica a leitura e escrita de ficheiros xlsx e, tal como o readxl, e não depende de Java, Perl, ou outras bibliotecas externas. Utilizando Rcpp, openxlsx fornece tempos de leitura/escrita rápidos mesmo para ficheiros enormes. Esta biblioteca funciona bem com ficheiros xlsx, mas não suporta ficheiros xls mais antigos.

O Openxlsx fornece a função read.xlsx que cria uma moldura de dados com os dados lidos a partir do ficheiro importado. Tem muitas opções para especificar se a área a importar contém nomes de linhas e colunas, o nome ou número da folha de trabalho a importar, as linhas e colunas a importar, entre muitas outras.

No exemplo seguinte, instalamos o pacote openxlsx e abrimos a biblioteca. Em seguida, utilizamos as opções em read.xlsx para importar linhas 2, 4, e 6 e colunas 5 a 7 da folha 1 de um ficheiro chamado Data.xlsx com estes dados:

Sample-Excel

Depois disso, imprimimos o conteúdo da moldura de dados resultante para a consola. Uma vez que não lemos os nomes das colunas do ficheiro, definimos o parâmetro colNames para False. R atribuirá automaticamente uma sequência predefinida de nomes: X1, X2, X3 às colunas na moldura de dados importados. Note que podemos especificar quais as linhas e colunas a importar, especificando-as com vectores:

install.packages("openxlsx")
library("openxlsx")
MyData <- read.xlsx(xlsxFile="c:/Tmp/Data.xlsx", sheet = 1, rows = c(2, 4, 6), cols = 5:7, colNames = FALSE)
MyData

Resultado:

  X1 X2 X3
1 34 12 17
2 15 25 66
3 32 45 56

Para leitura posterior, consultar a documentação oficial openxlsx.