Per installare l’ultima versione di R bisogna andare sulla pagina CRAN:
RStudio è un ambiente di sviluppo integrato (IDE) per R. Unisce un’elecante applicazione grafica con una serie di strumenti che ci possano aiutare nelle diverse fasi dello sviluppo del codice e cosa molto importante a mantenere ben organizzato il flusso di lavoro. E’ un software free che gira su Linux, Mac OS X e Windows e può essere scaricato dal sito di RStudio
Completata l’installazione, accedere ad RStudio che rileverà R in automatico.
L’ambiente di lavoro di RStudio è costituito da quattro finestre le cui funzioni principali sono:
Prima di procedere con una nuova attività di analisi, è consigliabile aprire uno nuovo script. Dall’interfaccia di RStudio cliccare su File
e selezionare R Script
. Successivamente procedere con il salvataggio del file.
Per eseguire il codice che viene scritto all’interno dell’editor di testo:
Run
se si vuole eseguire la riga su cui è posizionato il cursoreSource
se si vuole eseguire tutto il codice contenuto nello script
Per utilizzare R da linea di comando è necessario digitare il codice direttamente nella console.
Per comprendere la programmazione in R, questi due concetti potrebbero esserti di supporto:
Gli oggetti sono i nostri mattoncini lego mentre le funzioni le istruzioni.
Come per i lego, attraverso le istruzioni manipoliamo i nostri mattoncini, così con le funzioni manipoliamo gli oggetti per realizzare le nostre analisi. Gli oggetti sono come contitori che contengono l’informazione. Un oggetto può contenere un set di dati o i informazioni di un modello. Per manipolare e modificare questi oggetti abbiamo bisogno delle funzioni. Tutto è una funzione, dal calcolo della media all’algoritmo di deep learning. Per esempio la media è una funzione che agisce su una serie di dati resituendo un numero. La funzione di deep learning agisce su un dataset restituendo un modello.
Questi due concetti, oggetto e funzione, sono essenziali e sarannoripresi nel proseguo di questo tutorial.
Introduciamo adesso i comandi essenziali di base. Il simbolo #
serve a commentare e qualunqua cosa scritta alla sua destra non verrà eseguita:
# commento
La linea di comando può essere utilizzata come una vera e propria calcolatrice, come è illustrato dal seguente codice:
21+1+18
## [1] 40
sqrt(14)-21/3
## [1] -3.258343
Le operazioni matematiche di base sono:
+
addizione-
sottrazione*
moltiplicazione/
divisione^
elevamento a potenzaLe funzioni hanno una scrittura di questo tipo fun(arg1,arg2...)
dove:
fun()
è il nome della funzionearg1,arg2,...
sono gli argomenti che vengono passati alla funzioneIn R è possibile chiedere aiuto con help
on con ?
seguito dal nome della funzione. In basso a destra, nel riquadro Plot si aprirà una finestra con un help relativo alla funzione. E’ fondamentale imparare a leggere il manuale perchè permette di navigare attraverso le funzioni esistenti per sfruttarne efficacemente le potenzialità. Nell’esempio la funzione c()
, che è utilizzata per la creazione di nuovi oggetti come verrà illlustrato nel successivo paragrafo.
help(c)
?c()
Per assegnare un valore ad una variabile si usano i simboli <-
. Tale operazione permette di memorizzare l’informazione richiesta in un nuovo oggetto nell’ambiente di lavoro (workspace).
a <- 12
a
## [1] 12
Informazioni sull’ambiente di lavoro possono essere ottenute nel riquadro di RStudio in alto a destra.
Un oggetto può essere di diverso tipo, i più comuni sono i vettori.
Per sfruttare al meglio il linguaggio R, è necessaria una solida comprensione dei tipi e delle strutture di dati e di come operare su di essi.
I vettori sono le strutture di dati più basilari in R.
Con la funzione c()
, combine , creiamo un vettore elencando gli elementiseparati da una virgola
vec1 <- c(18,2,3)
vec1
## [1] 18 2 3
vec2 <- c(7.2,55,29)
vec2
## [1] 7.2 55.0 29.0
vec3 <- c("Lorem","Ipsum","Dolor")
vec3
## [1] "Lorem" "Ipsum" "Dolor"
Nota bene: I vettori sono essenzialmente una raccolta ordinata di valori dello stesso tipo di dati atomici. Quindi, cosa succede quando viene creato un vettore con dati di tipo diverso? Gli elementi del vettori vengono trasformati per dare una versione consistente del vettore. Nel prossimo esempio la funzione class()
è utilizzata per conoscere la classe del vettore.
y1 <- c(1.7, "a") ## character
class(y1)
## [1] "character"
y2 <- c(TRUE, 2) ## numeric
class(y2)
## [1] "numeric"
y3 <- c("a", TRUE) ## character
class(y3)
## [1] "character"
La struttura più utilizzata per elaborare i dati in R è il dataframe, è ideale perchè lavora con dati strutturati e può contenere tutti i tipi di dati. Un dataframe è una lista di vettori (solitamente, gli attributi), che devono avere tutti la stessa lunghezza (numero di casi, istanze), ma possono essere di tipo diverso. Un data frame è come una tabella, ha righe, le osservazione, e colonne le variabili. Per creare un data frame utilizziamo la funzione data.frame()
ed elenchiamo i vettori che comporranno il dataset finale:
df <- data.frame(vec1,vec2,vec3)
Gli oggetti creati in R possono essere di diversa forma, oltre a vettori e data frame, possiamo creare matrici (vettori con più di dimensioni) e liste come mostrato in figura.
Una delle attività che viene svolta maggiormente durante il processo di analisi è l’accesso ai dati.
Ci sono diversi modi per accedere agli elementi di un vettore o data frame, il più comune sfrutta le parentesi quadre e utilizza uno o più indici per indicare la posizione di un elemento.
Per un vettore:
vec1[2] # ritorna il secondo elemento del vettore
## [1] 2
Nella figura seguente, una visualizzazione delle diverse modalità di accesso nel caso di vettori:
Discorso analogo per le matrici e data frame:
df[2,1] # ritorna l'elemento della seconda riga e prima colonna
## [1] 2
Nel caso di data frame, è possibile utilizzare il nome della colonne all’interno delle parentisi quadre per indicare la variabile da considerare.
df[1,"vec1"] # ritorna l'elemento della prima riga e della colonna di nome "vec1"
## [1] 18
Per selezionare una colonna all’interno del dataframe si può utilizzare il simbolo $
dopo il nome del dataset. A seguito del simbolo $
specificare il nome dell’attributo. Il risultato di questa operazione è quello di estrarre il vettore relativo all’attributo selezionato.
df$vec1
## [1] 18 2 3
Tale modalità è utilizzata anche per estrarre un oggetta all’interno di una lista specificando il suo nome.
Le variabili categoriche sono variabili che assumono un numero limitato di valori chiamati anche livelli. La funzione as.factor()
viene utilizzata per creare una variabile categorica (factor) da un vettore.
# vettore carattere
dat <- c("bianco","nero","nero","nero","bianco","grigio")
class(dat)
## [1] "character"
# vettore categorico
fdat <- as.factor(dat)
class(fdat)
## [1] "factor"
Qui di seguito un elenco di funzioni utili:
length(object)
numero di elementi in un vettore
str(object)
mostra la struttura di un oggetto/variabile
head(variabile)
mostra i primi 6 elementi di una variabile
tail(variabile)
mostra gli ultimi 6 elementi di una variabile
class(object)
classe di un oggetto
names(object)
nome degli attributi
c(object,object,...)
concatena gli oggetti in un vettore
cbind(object, object, ...)
concatena gli oggetti per colonna
rbind(object, object, ...)
concatena gli oggetti per riga
Un pacchetto in R è un insieme di funzionalità pre-costruite. Le funzioni possono calcolare una funzione matematica, ad esempio somma o creare un grafico. Di fatto, ciò che rende R una piattaforma statistica formidabile è la straordinaria ricchezza di pacchetti disponibili (ben oltre 14000 al momento della scrittura). In R, i pachetti vengono installati tramite la funzione install.packages("nomepachetto")
install.packages("ggplot2")
Una volta installato il pachetto è possibile caricare nell’ambiente di lavoro (workspace) le funzioni della libreria tramite il comando library("nomepachetto")
:
library("ggplot2")
Solo a seguito di questo comando le funzione del pachetto sono disponibili.
R ha numerose funzioni che permettono di connettersi a sorgenti di vario tipo e leggere i dati dai formati più comuni. R fornisce un intero manuale che descrive il processo di importazione/esportazione dei dati.
R può importare dati contenuti in file CSV in maniera molto flessibile.
Il modo più semplice e pratico per importare i dati è utilizzare la finestra in alto a sinistra Environmnet
e cliccare su Import Dataset
, poi utilizzare l’opzione From Text(readr)
.
Oppure utilizzando la funzione read.csv()
e specificando il percorso del file all’interno della funzione.
dat <- read.csv("C:/dataset/iris.csv")
I dati che vengono importati sono memorizzati in un oggetto data frame a cui viene assegnato il nome dat
.
Nella sintassi di R esiste un’espressione particolare che viene utilizzata in certi grafici (esempio in ggplot2
) e in alcune funzioni che creano modelli predittivi (esempio nella funzione lm()
). Tale sintassi prende il nome di formula
e utilizza il simbolo tilde ~
.
y ~ x + z
## y ~ x + z
La variabile sul lato sinistro della tilde è chiamata “variabile dipendente”, mentre le variabili sul lato destro sono chiamate “variabili indipendenti” e sono unite dal segno +. Tale espressione utilizzata all’interno di alcuni funzioni esprime una relazione tra le variabili. Si possono avere maggiori informazioni a riguardo grazie il manuale creato da Datacamp: