Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


Il Laboratorio di Analisi dei Dati con R, dell'Università di Teramo su piattaforma Meet, inizia il 9 aprile 2021 - Iscrizione - email

Barra laterale

Segui il canale Telegram

Max 3 mess. al giorno (cos'è?)

Contenuti

Ultimi post del blog

Video e tutorial

Pagine aggiornate


Formazione

Mini webinar

Incontri individuali online


Ricerca sociale con R (il libro)


Contatti



Download R
r:gestione_dei_dati:importare_i_dati

Importare i dati in R

In R, l'inserimento diretto dei dati in un Dataframe non è una operazione semplicissima. L'importazione dei dati diventa quindi il modo più efficiente per costruire un dataset, o per utilizzarne uno disponibile in altro formato.

R prevede diverse funzioni di importazione dei dati, anche con finalità diverse (ad es.: importare dati e tabelle dal web), ma la procedura più semplice da seguire è:

Preparazione della base dati

Prima di importare i dati in un dataframe, bisogna prepararli, facendo attenzione a:

  • la riga di intestazione, che deve contenere i nomi delle variabili, e deve essere una sola;
  • l'appropriatezza dei nomi delle variabili;
  • il formato numerico adottato ed eventualmente la codifica del file (impostazioni di lingua);
  • che ci sia una variabile per gli identificativi di caso (la numerazione delle righe è relativa alla posizione, l'identificativo del caso deve essere univoco);
  • tipo di variabili: numeriche e stringhe (vedi: Variabili e vettori in R);
  • trattamento dei valori mancanti: poiché R richiede un particolare trattamento dei valori mancanti, può essere utile, prima dell'importazione, distinguere fra:
    • mancate risposte = dati non disponibili, ovvero valori mancanti veri e proprio, da codificare come NA;
    • risposte non dovute = filtrate da domande precedenti.

Con Excel

  • Tutti i dati devono essere in un singolo foglio di calcolo di un singolo file;
  • Nel foglio non ci devono essere righe vuote;
  • Se i dati sono raggruppati (come nell'esempio sotto), costruire una variabile che contenga l'informazione dell'appartenenza al gruppo

Esempio 1)

Questa tabella NON va bene

Male Female
ID Salary ID Salary
1 32000 2 23000
3 37000 4 54000

Va trasformata così

ID Salary Gender
1 32000 Male
2 23000 Female
3 37000 Male
4 54000 FeMale

Con Office Calc

Valgono le stesse indicazioni per Excel.

Formati dei files Excel e Calc

Una volta terminati i controlli sui file, i default delle procedure di esportazione dei file Excel e Calc possono essere utilizzati per salvare il dataset ed importarlo in R.

Sarà cioè possibile utilizzare il comando da menu “Salva con nome …” e selezionare il formato di output, senza ulteriori modifiche.

Excel

In Excel è possibile salvare i files in vari formati. Oltre al formato Excel (xlsx), suggeriamo di utilizzare i seguenti:

formato sep. campo sep. testo sep. decimali comando import.
txt (tab delimited) tabulazione nessuno , (virgola) read.delim2
csv ; (punto e virgola) nessuno , (virgola) read.csv2

Attenzione a non confondere il formato CSV con il formato CSV UTF-8.

Calc

Anche in OpenOffice, è possibile salvare i files in vari formati, fra i quali sono da preferire il formato xlsx e quello csv (non esiste un filtro per l'importazione diretta dei formati open office):

formato sep. campo sep. testo sep. decimali comando import.
csv , (virgola) nessuno come mostrato read.csv
Esporta i dati da Calc

In questo caso, di default, il separatore dei decimali (e delle migliaia), è quello utilizzato nel foglio di calcolo stesso, quindi quello di sistema (in Italia, dovrebbe essere la virgola).

Importazione: procedure

Definiamo come directory di lavoro quella in cui collochiamo il file esportato, per maggiore comodità.

Con RStudio

RStudio prevede una semplice procedura di importazione dei dati da Excel e da altri formati.

 |

Nel video viene illustrata l'importazione di un file csv da url:


Con RCommander

Funzioni di R

Da Excel

Per importare i file di Excel in formato xls e xlsx, è molto comodo e semplice da usare il pacchetto readxl2)

es_readxl.R
# installare e caricare il pacchetto
install.packages("readxl")
library("readxl")
 
# importare il file
mydata <- read_excel("myfile.xlsx")
 
# oppure
mydata <- read_excel(file.choose())

Gli argomenti della funzione consentono di indicare il foglio di lavoro e il range delle celle da importare.

# argomenti di read_excel
read_excel(path, sheet = NULL, range = NULL, col_names = TRUE,
  col_types = NULL, na = "", trim_ws = TRUE, skip = 0, n_max = Inf,
  guess_max = min(1000, n_max))

Vedi il sito web del pacchetto

da csv

Se il file ha il formato numerico italiano, usiamo la funzione read.csv2:

# argomenti di read.csv2
read.csv2(file, header = TRUE, sep = ";", quote = "\"",
          dec = ",", fill = TRUE, comment.char = "", ...

Di default, quindi, read.csv2 legge i file con “;” come separatore di campo (sep=";") e separatore di decimale “,” (dec = ","). Digiteremo dunque il comando:

es_csv2.R
mydata <- read.csv2("myfile.csv")

Se il file usa un formato numerico non italiano (il punto come separatore di decimali), usiamo la funzione read.csv, che, di default, legge i file con “,” come separatore di campo (sep=",") ma separatore di decimale “.” (dec = "."). In teoria, però, nel nostro file dovremmo avere le virgole come separatori dei decimali.

Digiteremo dunque:

mydata <- read.csv("myfile.csv")

da formato di testo delimitato

I file in formato testo possono avere altri delimitatori di campo (spazio, tabulazione, ecc.). I file Excel esportati in formato txt, ad esempio usano la tabulazione (tab delimited). Se il file ha il formato numerico italiano, usiamo la funzione read.delim2:

# argomenti di read.delim2
read.delim2(file, header = TRUE, sep = "\t", quote = "\"",
            dec = ",", fill = TRUE, comment.char = "", ...)

Di default, la funzione legge i file con le tabulazioni come separatore di campo (sep = "\t") e separatore di decimale “,” (dec = ","). Sarà quindi sufficiente digitare il comando:

es_delim2.R
mydata <- read.delim2("myfile.txt")

Queste funzioni fanno parte ed hanno gli stessi argomenti della funzione generica di importazione dei dati read.table.

da Spss

La funzione più semplice da usare è spss.get nel pacchetto Hmisc.

# argomenti di spss.get
spss.get(file, lowernames=FALSE, datevars = NULL,
         use.value.labels = TRUE, to.data.frame = TRUE,
         charfactor=FALSE)
datevars variabili da convertire in date
use.value.labels se TRUE (default), le etichette vengono trasformate in livelli dei dattori
to.data.frame se TRUE (default), i dati vengono importati in un Dataframe
charfactor se FALSE (default), le variabili di testo NON vengono convertite in fattori

Per altri argomenti, cfr. la guida di Hmisc.

Es.:

require(Hmisc)
mydata <- spss.get("mydata.sav", datevars=c("datanascita","datainterv"))

da SAS

# argomenti di sasxport.get
sasxport.get(file, lowernames=TRUE, force.single = TRUE,
             method=c('read.xport','dataload','csv'), formats=NULL, allow=NULL,
             out=NULL, keep=NULL, drop=NULL, as.is=0.5, FUN=NULL) 

Richiede il file di esportazione di SAS (.xpt).

Esempio:

require(Hmisc)
mydata <- sasxport.get("mydata.xpt")

Per altri argomenti e opzioni, cfr. l'help di Hmisc.

Dopo l'importazione

  • Controllare ed eventualmente correggere il nome delle variabili (colnames) - vedi Variabili e vettori: etichette;
  • Controllare che sia presente una variabile ID per l'identificatore dei casi - vedi sopra;
  • Controllare ed eventualmente convertire il formato dei dati (fattori, fattori ordinati, date) - vedi Ricodificare le variabili.

1) tratto da R4Stats
2) Ha. Wickham & J. Bryan (2018). readxl: Read Excel Files. R package version 1.1.0. https://CRAN.R-project.org/package=readxl
r/gestione_dei_dati/importare_i_dati.txt · Ultima modifica: 25/09/2021 11:03 da admin