Ler ficheiros xlsx em R
- Deixar o utilizador especificar o ficheiro a importar
-
Utilize a biblioteca
openxlsx
para ler o ficheiro 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:
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.