R – importare ed esportare dati dall’esterno

Il poter lavorare con i dati, importarli, esportarli ed altre operazioni simili, è un’operazione importantissima per cominciare a lavorare e ad effettuare statistiche ed analisi dei dati. Ecco alcuni concetti fondamentali ed operazioni che permettono di convertire dati esterni in diversi formati in dataframe, o comunque in tipologie di dati facilmente usufruibili su R.

R - importare ed esportare dati dall'esterno

Workspace

La piattaforma R lavora su una directory di riferimento che viene tecnicamente chiamata workspace directory. Per poter conoscere la worspace directory corrente si utilizza il comando getwd().

> getwd()
[1] "D:/R-4.0.3/bin"

Per impostare una diversa directory come workspace, si usa invece setwd().

> setwd("D:/")
> getwd()
[1] "D:/"

Per conoscere i file contenuti all’interno della working directory si può usare il comando dir().

> dir()
[1] "models.csv"                "R-4.0.3"
[3] "System Volume Information"

Importare i dati da tabelle Excel

In tantissime attività professionali, moltissimi dati vengono elaborati e conservati all’interno di tabelle Excel. Un’operazione molto utile è quella di importare i dati nelle tabelle direttamente nella piattaforma R in modo semplice.

Si apre il foglio excel da cui vogliamo importare i dati. Selezioniamo la tabella da importare e facciamone la copia ( CTRL + C ).

R - ottenere dati dall'esterno - tabella excel

Adesso apriamo una sessione su R e inseriamo il seguente comando:

> tab <- read.table("clipboard", header=T, sep="\t")
> tab
   ID       Model    Class
1 123   Optical X Economic
2 154 Optical X 2 Economic
3 234   Wellness  Business
4 235  Wellness B Business
5 433        Kart   Luxury
6 455      Utopia   Luxury

Ora i dati della tabella sono sotto forma di un comunissimo dataframe.

Come vedete, la funzione read.table() ci permette di poter leggere i dati presenti nella memoria temporanea, il clipboard. Se la tabella ha delle intestazioni da importare, come nel nostro caso, si pone TRUE alla chiave header passata come parametro. Inoltre essendo un foglio Excel si seleziona il carattere separatore “\t” che corrisponde al TAB.

Per ottenere i nome delle intestazioni si usa la funzione names().

> names(tab)
[1] "ID"    "Model" "Class"

Lettura di file CSV

Un’altra tipologia di file che contiene dati tabulari è quella contenuta in file CSV. Anche in questo caso si può utilizzare la funzione read.table().

> models <- read.table(file="models.csv", header=T, sep=";")
> models
   ID       Model    Class
1 123   Optical X Economic
2 154 Optical X 2 Economic
3 234   Wellness  Business
4 235  Wellness B Business
5 433        Kart   Luxury
6 455      Utopia   Luxury

Importare dati direttamente da Web

Ma oggi come oggi, la maggior parte dei dati sono presenti su web. Esistono alcuni siti, che potremo definire data source, che ogni data scientist dovrebbe conoscere come fonti di dati utili.

Uno di questi è data.gov, un sito che fornisce molti dati pubblici da parte degli USA. Per esempio nella pagina caricata di recente, sono disponibili dei dati sul Covid 19.

R - dati da web import csv file

Per esempio selezioniamo il link del CSV contenente i dati sul covid 19. Facciamone la copia e poi passiamola come parametro della funzione read.csv().

> covid19 <- read.csv("https://healthdata.gov/sites/default/files/reported_hos$

Il sistema richiederà un po’ di tempo prima di scaricare tutti i dati dal link e convertirli in un dataframe.

Una volta ottenuto nuovamente il prompt > , la piattaforma sarà pronta nuovamente per accettare comandi.

La tabella caricata è un’immensa mole di dati. Per esempio se vogliamo sapere la dimensione del dataframe, utilizziamo la funzione dim().

> dim(covid19)
[1] 87369    93

Come possiamo vedere il dataframe caricato ha oltre 80000 righe e ben 93 colonne. Una volta noto il dataframe e compresi quali siano le colonne e le righe che ci interessano possiamo estrarre un nuovo dataframe da quello totale che contenga solo i dati che ci interessano.

df <- covid19[1:100,c(1:10,68)]

Questo è solo una delle tantissime possibilità per effettuare una selezione. In questo caso selezioniamo le prime 100 righe (1:100) e lasciando solo le prime 10 colonne con l’aggiunta della 68 colonna.

Esportare i dataframe come CSV

Con R è possibile effettuare anche l’operazione inversa. Cioè una volta elaborati i dati in un dataframe all’interno della piattaforma R, è possibile esportarli come file CSV.

write.table(models, "models2.csv")

Nella workspace directory verrà generato un nuovo file CSV contenente i dati tabulari del dataframe.

R - models 2 on csv

Lascia un commento