2 R and RStudio
R è scaricabile gratuitamente sul sito CRAN, comprehensive R archive network.
Che cos’è CRAN?
CRAN è composto da una serie di server distribuiti nel mondo ed è usato per la distribuzione delle versioni di R e dei suoi pacchetti. Il mirror migliore per la propria posizione viene scelto automaticamente quando si scarica un pacchetto ma è possibile selezionarne uno a piacimento. Ogni anno viene rilasciata una nuova versione di R (esempio versione 3.5.0 o 3.6.0). Oltre alla versione “completa”, vengono rilasciate anche 3 o 4 versioni intermedie con piccole migliorie (esempio versione 3.6.1).
Cosa succede quando si aggiorna R?
Ogni volta che si vuole aggiornare R è necessario scaricare e installare la nuova versione e reinstallare tutti i pacchetti. Vedremo cosa sono i pacchetti (o librerie) nelle lezioni successive.
2.1 Che cos’è R?
R non è un programma che si può installare e aprire come Word o Excel ma è un linguaggio di programmazione open-source (es. python). R può essere usato tramite linee di comando scritte nel linguaggio R, per l’appunto, che vengono interpretate dal proprio computer. Quindi, a differenza dei linguaggi più a basso livello, come C o C++, non deve essere compilato prima di essere eseguito.
Una volta le righe di comando di R venivano lanciate tramite una finestra del terminale (shell):
Oggi, la stragrande maggioranza degli utenti si interfaccia a R tramite il software RStudio che ne migliora e facilita l’esperienza di utilizzo.
2.2 RStudio
RStudio è un ambiente di sviluppo integrato, o IDE (integrated development environment), per programmare in R (nelle ultime versioni è possibile anche lavorare su script scritti in python). Si può scaricare al link http://www.rstudio.com/download e successivamente installare.
Anche RStudio viene aggiornato di frequente. Si raccomanda la versione successiva alla 1.0.0..
Quando si avvia RStudio, una nuova sessione di R viene avviata. La schermata che appare è la seguente:
Pannello Output: qui compaiono tutti gli elementi grafici in output (plot, tabelle formattate, ecc…)
Pannello Console: qui vanno scritte le righe di comando in R per essere eseguite tramite il tasto Invio.
Esempio: se nella console si digita 1 + 1
e si preme Invio, RStudio mostrerà:
> 1 + 1
[1] 2
L’[1]
indica che quello che appare nella console è il primo e, in questo caso, unico elemento dell’output. Alcuni comandi produrranno dei risultati lunghi che verranno mostrati su più linee, in questo caso sarà utile sapere quale elemento dell’output stiamo visualizzando per ricostruire la struttura dell’oggetto in uscita.
Esempio: il risultato del comando 100:130
è una serie di 31 numeri, vale a dire la sequenza di numeri da 100 a 130.
> 100:130
[1] 100 101 102 103 104 105 106 107 108 109 110 111 112
[14] 113 114 115 116 117 118 119 120 121 122 123 124 125
[25] 126 127 128 129 130
Il quattordicesimo elemento dell’output di 100:130
è 113
.
:
L’operatore (x:y
) ritorna la sequenza di interi che parte con l’intero x
e termina con l’intero y
.
R è in grado di capire quando un comando non è terminato. In questo caso, se si preme Invio, comparirà un +
nella console indicando che R sta aspettando chi si completi il comando.
Ad esempio:
> 5 -
+
+ 1
[1] 4
Se si digita un comando non riconosciuto da R, questo ritornerà un errore:
> 3 % 5
Error: unexpected input in "3 % 5"
Una volta acquisita una certa manualità nell’utilizzo della console è possibile eseguire delle semplici operazioni matematiche in maniera immediata.
Esercizio 1
Cominciare a familiarizzare con la console eseguendo delle semplici operazioni matematiche:
Scegliere un qualsiasi numero e aggiungere 2.
Moltiplicare il risultato per 3.
Sottrarre 6 al risultato precedente.
Infine, dividere per 3.
Scelgo il numero 10:
10 + 2
## [1] 12
12 * 3
## [1] 36
36 - 6
## [1] 30
30 / 3
## [1] 10
Invece di calcolare ogni volta il risultato ed eseguire l’operazione successiva, possiamo usare una variabile che contenga l’ultimo valore calcolato. Per esempio, chiamiamo la nostra variabile numero
:
<- 10
numero <- numero + 2
numero <- numero * 3
numero <- numero - 6
numero <- numero / 3
numero numero
## [1] 10
<-
In R l’operatore di assegnazione <-
è uguale all’operatore =
ma, quest ultimo può essere usato solo nel codice top-level. Si consiglia pertanto l’uso di <-
. Esistono anche l’operatore di assegnazione inversa (da destra verso sinistra) ->
e gli operatori di assegnazione globale ->>
e <<-
che possono tornare utili quando si vuole modificare il valore di una variabile che risiede nell’ambiente di livello superiore (globale) a quello in cui stiamo lavorando (locale).
Per approfondimenti: https://stat.ethz.ch/R-manual/R-devel/library/base/html/assignOps.html
nomi delle variabili
In R, le variabili possono avere qualsiasi nome che non inizi per un numero e non contenga i seguenti caratteri: ^
, !
, $
, @
, +
, -
, *
o /
.
R è case sensitive, ciò significa che la variabile numero
è diversa da Numero
.
Non si possono sovrascrivere le variabili già esistenti nel pacchetto base di R, quindi bisogna usare nomi diversi. Ad esempio non si può creare una variabile che si chiami TRUE
oppure else
.
Supponiamo che si voglia eseguire la stessa operazione 100 volte. Siamo costretti a digitare il comando nella console ogni volta? Ovviamente no!
Si possono creare dei documenti (file) , chiamati script, che contengono tutto il codice che vogliamo eseguire. Uno script di R è un file di testo con estensione ‘.R’ e può essere aperto con un qualsiasi editor di testo o da R e RStudio attraverso il menu File > New File > R script
. Per salvare uno script cliccare su File > Save As
sempre nella barra dei menu.
Con RStudio possiamo lavorare con gli script in modo molto efficiente. Il codice contenuto in uno script può essere eseguito selezionando le righe interessate e cliccando sul bottone ‘Run’ in alto a destra della finestra dello script. Se non si seleziona nessuna riga RStudio eseguirà il comando nella riga in cui è posizionato il cursore. L’alternativa al bottone ‘Run’ è la combinazione di tasti ctrl+Invio (Cmd+Invio su mac).
Esercizio 2
Eseguire 5 volte le operazioni dell’Esercizio 1 usando uno script di R. Creare lo script e salvarlo come ‘foo.R’.
- Creo lo script:
File > New File > R script
- Digito le operazioni che voglio eseguire, seleziono tutto con ctrl+a, copio con ctrl+c, sposto il cursore nella prima riga vuota dello script, incollo 4 volte con ctrl+v*4.
- Eseguo il codice una volta sola selezionando tutto di nuovo e cliccando su ‘Run’ o digitando ctrl+Invio.
- Salvo lo script:
File > Save As
, lo chiamo ‘foo.R’.
Usare lo script al posto della console è consigliabile poichè si può tenere traccia di tutte le istruzioni da eseguire.