Leggi i file xlsx in R

Gustavo du Mortier 26 aprile 2021
  1. Consenti all’utente di specificare il file da importare
  2. Usa la libreria openxlsx per leggere il file xlsx in R
Leggi i file xlsx in R

Il modo più comune per ottenere dati da un foglio di calcolo Excel e importarli in R è utilizzare Excel per salvare i dati in un formato più convenzionale, come .csv. Ma se è necessario importare ripetutamente file xlsx, è preferibile un’opzione più rapida, come l’utilizzo di un pacchetto per importare file Excel direttamente in R.

Molti pacchetti in R hanno la capacità di leggere file xls / xlsx. Uno di questi è readxl. Questo pacchetto ha meno dipendenze esterne rispetto ad altri pacchetti, rendendolo facile da installare in quasi tutti i sistemi operativi. Il modo più semplice per aggiungerlo al tuo ambiente R è installare l’intera libreria tidyverse con il seguente comando:

install.packages("tidyverse")

Ma poiché non è una libreria di base tidyverse, deve ancora essere caricata esplicitamente con il comando library(readxl). Quindi sarai in grado di importare un file Excel con la funzione read_excel, in questo modo:

MySheet <- read_excel("ExcelFile.xlsx")

Nell’esempio precedente, importiamo il contenuto di un foglio di calcolo chiamato ExcelFile.xlsx in un data frame chiamato MySheet.

Consenti all’utente di specificare il file da importare

Se non conosci in anticipo la posizione del file Excel e desideri consentire all’utente di scegliere il file da leggere, puoi utilizzare file.choose() invece di specificare esplicitamente il percorso del file:

MySheet <- read_excel(file.choose())

La funzione read_excel() ha altri parametri per specificare un particolare foglio da importare o specificare un valore che rappresenta NAs invece di celle vuote. In questo esempio, stiamo importando un foglio chiamato data e indicando che le celle con il contenuto NA verranno interpretate come NA:

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

Usa la libreria openxlsx per leggere il file xlsx in R

Un altro pacchetto che puoi usare per leggere file Excel in R è openxlsx. Questo pacchetto semplifica la lettura e la scrittura di file xlsx e, come readxl, e non dipende da Java, Perl o altre librerie esterne. Utilizzando Rcpp, openxlsx fornisce tempi di lettura / scrittura rapidi anche per file di grandi dimensioni. Questa libreria funziona bene con i file xlsx, ma non supporta i file xls più vecchi.

Openxlsx fornisce la funzione read.xlsx che crea un data frame con i dati letti dal file importato. Ha molte opzioni per specificare se l’area da importare contiene nomi di righe e colonne, il nome o il numero del foglio di lavoro da importare, le righe e le colonne da importare, tra molti altri.

Nell’esempio seguente, installiamo il pacchetto openxlsx e apriamo la libreria. Quindi, utilizziamo le opzioni in read.xlsx per importare le righe 2, 4 e 6 e le colonne da 5 a 7 dal foglio 1 di un file denominato Data.xlsx con questi dati:

Esempio di Excel

Dopodiché, stampiamo il contenuto del data frame risultante sulla console. Dato che non leggiamo i nomi delle colonne dal file, impostiamo il parametro colNames su False. R assegnerà automaticamente una sequenza di nomi predefinita: X1, X2, X3 alle colonne nel DataFrame importato. Nota che possiamo specificare quali righe e colonne importare specificandole con i vettori:

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

Produzione:

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

Per ulteriori letture, controlla la documentazione ufficiale di openxlsx.