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" ...