Importa dati in R: leggi file CSV, Excel, SPSS, Stata, SAS

Sommario:

Anonim

I dati potrebbero esistere in vari formati. Per ogni formato R ha una funzione e un argomento specifici. Questo tutorial spiega come importare dati in R.

In questo tutorial imparerai

  • Leggi CSV
  • Leggi i file Excel
  • readxl_example ()
  • read_excel ()
  • excel_sheets ()
  • Importa dati da altri software statistici
  • Leggi sas
  • Leggi STATA
  • Leggi SPSS
  • Best practice per l'importazione dei dati

Leggi CSV

Uno dei più diffusi archivi di dati sono i formati di file .csv (valori separati da virgole). R carica un array di librerie durante l'avvio, incluso il pacchetto utils. Questo pacchetto è comodo per aprire file csv in combinazione con la funzione reading.csv (). Ecco la sintassi per read.csv

read.csv(file, header = TRUE, sep = ",")

Argomento :

  • file : PERCORSO in cui è archiviato il file
  • intestazione : conferma se il file ha un'intestazione o meno, per impostazione predefinita, l'intestazione è impostata su TRUE
  • sep : il simbolo utilizzato per dividere la variabile. Per impostazione predefinita, `,`.

Leggeremo il nome del file di dati mtcats. Il file csv viene archiviato in linea. Se il tuo file .csv è archiviato localmente, puoi sostituire il PERCORSO all'interno dello snippet di codice. Non dimenticare di avvolgerlo dentro ''. Il PERCORSO deve essere un valore stringa.

Per gli utenti Mac, il percorso per la cartella di download è:

 "/Users/USERNAME/Downloads/FILENAME.csv"

Per utenti Windows:

"C:\Users\USERNAME\Downloads\FILENAME.csv"

Nota che dovremmo sempre specificare l'estensione del nome del file.

  • .csv
  • .xlsx
  • .TXT
  • ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <- read.csv(PATH, header = TRUE, sep = ',')length(df)

Produzione:

## [1] 12
class(df$X)

Produzione:

## [1] "factor"

R, per impostazione predefinita, restituisce i valori dei caratteri come Fattore. Possiamo disattivare questa impostazione aggiungendo stringsAsFactors = FALSE.

PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE)class(df$X)

Produzione:

## [1] "character"

La classe per la variabile X è ora un carattere.

Leggi i file Excel

I file Excel sono molto popolari tra gli analisti di dati. I fogli di calcolo sono facili da lavorare e flessibili. R è dotato di una libreria readxl per importare fogli di calcolo Excel.

Usa questo codice

require(readxl)

per verificare se readxl è installato sulla macchina. Se installi r con r-conda-essential, la libreria è già installata. Dovresti vedere nella finestra di comando:

Produzione:

Loading required package: readxl. 

Se il pacchetto non esce, è possibile installarlo con la libreria conda o nel terminale, utilizzare conda install -c mittner r-readxl.

Usa il seguente comando per caricare la libreria per importare file Excel.

library(readxl)

readxl_example ()

Usiamo gli esempi inclusi nel pacchetto readxl durante questo tutorial.

Usa il codice

readxl_example()

per vedere tutti i fogli di lavoro disponibili nella libreria.

Per controllare la posizione del foglio di calcolo denominato clippy.xls, semplice utilizzo

readxl_example("geometry.xls")

Se installi R con conda, i fogli di calcolo si trovano in Anaconda3 / lib / R / library / readxl / extdata / filename.xls

read_excel ()

La funzione read_excel () è di grande utilità quando si tratta di aprire le estensioni xls e xlsx.

La sintassi è:

read_excel(PATH, sheet = NULL, range= NULL, col_names = TRUE)arguments:-PATH: Path where the excel is located-sheet: Select the sheet to import. By default, all-range: Select the range to import. By default, all non-null cells-col_names: Select the columns to import. By default, all non-null columns

Possiamo importare i fogli di calcolo dalla libreria readxl e contare il numero di colonne nel primo foglio.

# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)

Produzione:

## [1] 5

excel_sheets ()

Il file datasets.xlsx è composto da 4 fogli. Possiamo scoprire quali fogli sono disponibili nella cartella di lavoro utilizzando la funzione excel_sheets ()

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

Produzione:

[1] "iris" "mtcars" "chickwts" "quakes"

Se un foglio di lavoro include molti fogli, è facile selezionare un foglio particolare utilizzando gli argomenti del foglio. Possiamo specificare il nome del foglio o l'indice del foglio. Possiamo verificare se entrambe le funzioni restituiscono lo stesso output con identico ().

example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)

Produzione:

## [1] TRUE

Possiamo controllare quali celle leggere in 2 modi

  1. Utilizza l'argomento n_max per restituire n righe
  2. Utilizza l'argomento intervallo combinato con cell_rows o cell_cols

Ad esempio, impostiamo n_max uguale a 5 per importare le prime cinque righe.

# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)

Se cambiamo col_names in FALSE, R crea automaticamente le intestazioni.

# Read the first five row: without headeriris_no_header <-read_excel(example, n_max =5, col_names =FALSE)

iris_no_header

Nel data frame iris_no_header, R ha creato cinque nuove variabili denominate X__1, X__2, X__3, X__4 e X__5

Possiamo anche utilizzare l'intervallo di argomenti per selezionare righe e colonne nel foglio di calcolo. Nel codice seguente, usiamo lo stile Excel per selezionare l'intervallo da A1 a B5.

# Read rows A1 to B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)

Produzione:

## [1] 4 2

Possiamo vedere che l'esempio_1 restituisce 4 righe con 2 colonne. Il set di dati ha un'intestazione, che il motivo per cui la dimensione è 4x2.

Nel secondo esempio, usiamo la funzione cell_rows () che controlla l'intervallo di righe da restituire. Se vogliamo importare le righe da 1 a 5, possiamo impostare cell_rows (1: 5). Notare che cell_rows (1: 5) restituisce lo stesso output di cell_rows (5: 1).

# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)

Produzione:

## [1] 4 5

L'esempio_2 tuttavia è una matrice 4x5. Il set di dati iris ha 5 colonne con intestazione. Restituiamo le prime quattro righe con l'intestazione di tutte le colonne

Nel caso in cui vogliamo importare righe che non iniziano dalla prima riga, dobbiamo includere col_names = FALSE. Se usiamo range = cell_rows (2: 5), diventa ovvio che il nostro data frame non ha più un'intestazione.

iris_row_with_header <-read_excel(example, range =cell_rows(2:3), col_names=TRUE)iris_row_no_header <-read_excel(example, range =cell_rows(2:3),col_names =FALSE)

We can select the columns with the letter, like in Excel.# Select columns A and Bcol <-read_excel(example, range =cell_cols("A:B"))dim(col)

Produzione:

## [1] 150 2 

Nota: range = cell_cols ("A: B"), restituisce l'output di tutte le celle con un valore non nullo. Il set di dati contiene 150 righe, quindi read_excel () restituisce righe fino a 150. Ciò viene verificato con la funzione dim ().

read_excel () restituisce NA quando nella cella viene visualizzato un simbolo senza valore numerico. Possiamo contare il numero di valori mancanti con la combinazione di due funzioni

  1. somma
  2. is.na

Ecco il codice

iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))

Produzione:

## [1] 50

Mancano 50 valori, che sono i filari appartenenti alla specie setosa.

Importa dati da altri software statistici

Importeremo diversi formati di file con il pacchetto Heaven. Questo pacchetto supporta i software SAS, STATA e SPSS. Possiamo utilizzare la seguente funzione per aprire diversi tipi di dataset, a seconda dell'estensione del file:

  • SAS: read_sas ()
  • STATA: read_dta () (o read_stata (), che sono identici)
  • SPSS: read_sav () o read_por (). Dobbiamo controllare l'estensione

È richiesto un solo argomento all'interno di queste funzioni. Dobbiamo conoscere il PERCORSO in cui è archiviato il file. Ecco fatto, siamo pronti per aprire tutti i file da SAS, STATA e SPSS. Queste tre funzioni accettano anche un URL.

library(haven)

haven viene fornito con conda r-essential altrimenti vai al link o nel terminale conda install -c conda-forge r-haven

Leggi sas

Per il nostro esempio, utilizzeremo il set di dati di ammissione da IDRE.

PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'df <- read_sas(PATH_sas)head(df)

Produzione:

## # A tibble: 6 x 4## ADMIT GRE GPA RANK##    ## 1 0 380 3.61 3## 2 1 660 3.67 3## 3 1 800 4.00 1## 4 1 640 3.19 4## 5 0 520 2.93 4## 6 1 760 3.00 2

Leggi STATA

Per i file di dati STATA è possibile utilizzare read_dta (). Usiamo esattamente lo stesso set di dati ma archiviamo nel file .dta.

PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'df <- read_dta(PATH_stata)head(df)

Produzione:

## # A tibble: 6 x 4## admit gre gpa rank##    ## 1 0 380 3.61 3## 2 1 660 3.67 3## 3 1 800 4.00 1## 4 1 640 3.19 4## 5 0 520 2.93 4## 6 1 760 3.00 2

Leggi SPSS

Usiamo la funzione read_sav () per aprire un file SPSS. L'estensione del file ".sav"

PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'df <- read_sav(PATH_spss)head(df)

Produzione:

## # A tibble: 6 x 4## admit gre gpa rank##    ## 1 0 380 3.61 3## 2 1 660 3.67 3## 3 1 800 4.00 1## 4 1 640 3.19 4## 5 0 520 2.93 4## 6 1 760 3.00 2

Best practice per l'importazione dei dati

Quando vogliamo importare dati in R, è utile implementare la seguente checklist. Renderà facile importare correttamente i dati in R:

  • Il formato tipico per un foglio di calcolo consiste nell'utilizzare le prime righe come intestazione (di solito il nome delle variabili).
  • Evita di nominare un set di dati con spazi vuoti; può portare all'interpretazione come una variabile separata. In alternativa, preferisci utilizzare "_" o "-".
  • I nomi brevi sono preferiti
  • Non includere il simbolo nel nome: ad esempio: exchange_rate _ $ _ € non è corretto. Preferisco chiamarlo: exchange_rate_dollar_euro
  • In caso contrario, usa NA per i valori mancanti; dobbiamo pulire il formato più tardi.

Sommario

La tabella seguente riassume la funzione da utilizzare per importare diversi tipi di file in R. Nella colonna uno è indicata la libreria relativa alla funzione. L'ultima colonna fa riferimento all'argomento predefinito.

Biblioteca

Obbiettivo

Funzione

Argomenti predefiniti

utils

Leggi il file CSV

read.csv ()

file, header =, TRUE, sep = ","

readxl

Leggi il file EXCEL

read_excel ()

percorso, intervallo = NULL, col_names = TRUE

porto

Leggi il file SAS

read_sas ()

sentiero

porto

Leggi il file STATA

read_stata ()

sentiero

porto

Leggi il file SPSS

read_sav ()

sentiero

La tabella seguente mostra i diversi modi per importare una selezione con la funzione read_excel ().

Funzione

Obiettivi

argomenti

read_excel ()

Legge n numero di righe

n_max = 10

Seleziona righe e colonne come in Excel

intervallo = "A1: D10"

Seleziona righe con indici

intervallo = cell_rows (1: 3)

Seleziona colonne con lettere

intervallo = cell_cols ("A: C")