Pagina personale di:
Carlo Vecchio
appunti di C#, R, SQL Server, ASP.NET, algoritmi, numeri
Vai ai contenuti

R - Importazione di file dati

R

Importazione di file dati

Importazione di file csv

  • Il package 'utils' già installato con R, contiene già diverse funzioni utili per importare dati da file di tipo csv.
  • Sia dato il file "C:\Temp\dati.csv" contenente i dati seguenti:

Id;Categoria;Valore
1;primo;0.123
2;secondo;0.234
3;primo;0.345
4;secondo;0.456
5;primo;0.567

  • Come di vede il separatore utilizzato è il ";" e la prima riga contiene le intestazioni.
  • Per importare il file utilizzare la funzione read.csv() oppure read.table(). Entrambe restituiscono un dataframe e differiscono nella numerosità di parametri disponibili. La read.csv() è più semplice mentre la read.table() ha maggiori possibilità di parametrizzazione.
  • Notare il parametro 'stringsAsFactors' che se impostato a FALSE fa sì che il campo 'Categoria' sia importato come stringa, se impostato a TRUE invece il campo viene importato come Factor.

# Utilizzo della read.csv().
dati <- read.csv("C:\\temp\\dati.csv", sep = ";", stringsAsFactors = FALSE)
print(dati)
 Id Categoria Valore
1  1     primo  0.123
2  2   secondo  0.234
3  3     primo  0.345
4  4   secondo  0.456
5  5     primo  0.567
str(dati)
'data.frame': 5 obs. of  3 variables:
$ Id       : int  1 2 3 4 5
$ Categoria: chr  "primo" "secondo" "primo" "secondo" ...
$ Valore   : num  0.123 0.234 0.345 0.456 0.567

# Alternativa alla read.csv() è la read.table().
dati <- read.table("C:\\temp\\dati.csv", sep = ";", header = TRUE, stringsAsFactors = FALSE)

Importazione di file Excel xlsx
  • Per importare un file Excel occorre ricorrere a una libreria esterna.
  • Nell'esempio seguente ho utilizzato il pacchetto "xlsx" che va installato e caricato.

# Lettura del file 'Dati.xls', foglio 'Nomi'.
datiExcel <- read.xlsx("Dati.xlsx", sheetName = "Nomi")
print(datiExcel)
 Nome    Cognome Data.di.nascita
1     Leonardo   Da Vinci      15/04/1492
2 Michelangelo Buonarroti      06/03/1475
3      Antonio     Canova      01/11/1757

  • La funzione read.xlsx() ha molti parametri. Con questi si ha la possibilità di indicare quale foglio leggere, per nome o per indice; quali righe leggere; la presenza dell'instestazione ed altri.

Importazione di file testo
  • I file di tipo testo, possono essere caricati utilizzando sempre la libreria 'utils' precaricata in R.
  • Sia dato il file 'EsempioTxt.txt' con le seguenti righe. I tre record hanno ciascuno tre campi separati da un carattere di tabulazione.

Colonna1 Colonna2 Colonna3
1 Milano 2000
2 Roma 1500
3 Torino 1200

# Lettura del file 'EsempioTxt.txt''.
datiTxt <- read.table("EsempioTxt.txt", header = TRUE, sep = "\t")
str(datiTxt)
'data.frame': 3 obs. of  3 variables:
$ Colonna1: int  1 2 3
$ Colonna2: Factor w/ 3 levels "Milano","Roma",..: 1 2 3
$ Colonna3: int  2000 1500 1200

Importazione di file JSON
  • I file JSON (JavaScript Object Notation) sono molto utilizzati in ambito Web.
  • Per caricare un file JSON, utilizzare la libreria 'jsonlite' (o altre equivalenti).
  • Per installare e caricare la libreria, utilizzare le solite istruzioni.

install.packages('jsonlite')
library(jsonlite)

  • Si abbia il file seguente chiamato 'Colors.json':

[{"color": "red", "value": "#f00"},
{"color": "green", "value": "#0f0"},
{"color": "blue", "value": "#00f"},
{"color": "cyan", "value": "#0ff"},
{"color": "magenta", "value": "#f0f"},
{"color": "yellow", "value": "#ff0"},
{"color": "black", "value": "#000"}]

  • Per caricarlo in un dataframe:

df <- fromJSON("C:\\Users\\carlo\\Documents\\Projects R\\Colors.json")  
str(df)
'data.frame': 7 obs. of  2 variables:
$ color: chr  "red" "green" "blue" "cyan" ...
$ value: chr  "#f00" "#0f0" "#00f" "#0ff" ...


© 2022 Carlo Vecchio
Torna ai contenuti