Linguaggio R. Importare i dati

Cerca nel sito

Altri risultati..

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors


Importazione di dati

La funzione data.frame() così come vista precedentemente non esaurisce le diverse possibilità per affrontare il problema dell’inserimento e gestione di dati.
Ad esempio la funzione

as.data.frame()


può essere utilizzata per forzare una matrice di dati ad un dataframe, oppure i dati potrebbero essere inseriti più facilmente attraverso un foglio elettronico: in questo caso

X<-data.frame()

crea un dataframe che è poi possibile aprire con

fix(X)

per l’inserimento dei dati direttamente nelle celle.

fix()

Un’altra possibilità, che è probabilmente la più frequente nelle applicazioni, è quella di importare i dati che sono disponibili in un file ASCII ottenuto da un qualsiasi altro programma. La funzione

read.table()

può essere utilizzata a tale scopo:

in questo caso il file dati.txt (disponibile nella cartella ‘c:\documenti’) viene importato e automaticamente convertito nel dataframe X. A questo punto sono utili le seguenti osservazioni:
• il percorso del file (path) viene scritto come negli ambienti Unix (o Linux) con /, oppure con \\;
• l’argomento header=TRUE specifica che la prima linea del file contiene i nomi delle variabili;
• l’argomento sep=”\t” indica che i diversi campi sono separati da un tab. Avremmo potuto specificare sep=”,” nel caso di una virgola e così via;
• l’argomento na.strings=”NA” può essere particolarmente utile se nel file sono presenti valori mancanti, in questo caso individuati con NA;
• l’argomento dec=”.” specifica il tipo di carattere utilizzato nel file per separare i decimali, in questo caso un punto.
Tra gli altri argomenti disponibili, nrows e skip possono essere molto utili quando si stanno importando file contenenti molte righe (record) non tutte di attuale interesse. Il primo argomento specifica il numero massimo di righe da leggere, mentre il secondo il numero di righe iniziali da saltare prima dell’importazione del file.

Ti potrebbe interessare anche:  Python: calcolo combinatorio. Usiamo il modulo itertools

Valori mancanti

Molto spesso i dati raccolti sono caratterizzati da valori mancanti che in R sono etichettati con NA. Inserire direttamente un dato mancante è facile:

Comunque se si stanno importando dati da un file esterno, è molto probabile che i valori mancanti siano etichettati con qualcosa di diverso da NA; ad esempio un asterisco, oppure valori palesemente insensati, come 999. In questo caso nel dataframe tutti i 999 dovranno essere sostituiti con NA. Questo può essere ottenuto facilmente utilizzando l’argomento na.strings=999 nella funzione read.table(), oppure una sostituzione può avvenire facilmente nel seguente modo

 x[x==999]<-NA

sostituzione di valori mancanti in R

Una funzione utilissima per i dati mancanti è  is.na() che restituisce il valore logico TRUE se il dato è mancante:

Riconoscere i dati mancanti è fondamentale per R (oltre che per noi, naturalmente), in quanto alcune funzioni non possono essere utilizzate con dati mancanti oppure necessitano di particolare attenzione al momento del loro utilizzo.
Per questa ragione è auspicabile avere ‘pieno controllo’ dei mancanti: ad esempio, è possibile selezionare a priori solo i dati non-mancanti utilizzando la stessa funzione is.na():

Le precedenti tre scritture sono equivalenti, ma la terza, in generale, è quella più compatta e quindi preferita; si noti l’uso della negazione ! e l’omissione del ==TRUE che non è necessaria e viene solitamente omessa. Allo stesso modo da un dataframe possono essere selezionati i record con non-mancanti:

Esempio:

La differenza tra X1 e X2 è che nel primo vengono eliminati soltanto i record con valori non-mancanti per la variabile sesso, mentre nel secondo quelli per cui il dato è mancante anche per la variabile eta; in generale quando ci sono
dati mancanti relativi a diverse variabili, il sub-dataframe avente soltanto record con valori completi potrà essere ottenuto attraverso la funzione na.omit(), cioè semplicemente na.omit(X).

Ti potrebbe interessare anche:  Python: Test di ipotesi su una media (test “z”) con varianza nota


Altri modi di lettura di data frame da un file

read.csv(): identico a read.table, ma pensato per leggere files “comma-separated”, cioè, nei quali i dati sono separati da virgole
read.csv2(): identico a read.csv, ma pensato per leggere files “comma-separated” in cui i decimali sono separati da virgole anziché punti
read.delim(): identico a read.table, ma pensato per leggere files “tab-separated”, cioè, nei quali i dati sono separati da tablature (o altri caratteri di delimitazione)
read.delim2(): identico a read.delim, ma pensato per leggere files “tab-separated” in cui i decimali sono separati da virgole anziché punti

Tutti questi metodi restituiscono una variabile di tipo data frame

(104)