+ All Categories
Home > Documents > Corso Introduttivo allʼutilizzo di R -...

Corso Introduttivo allʼutilizzo di R -...

Date post: 15-Feb-2019
Category:
Upload: lephuc
View: 218 times
Download: 0 times
Share this document with a friend
35
Corso Introduttivo allutilizzo di R Prof.ssa D.F. Iezzi [email protected]
Transcript
Page 1: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

Corso Introduttivo all’utilizzo di R !

Prof.ssa D.F. Iezzi

[email protected]

Page 2: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

Il software R q Il software R è distribuito gratuitamente come software Open Source con licenza GPL (General Public License) ed è disponibile per diverse architetture e i più comuni sistemi operativi: Linux, MacOS, Unix, Windows.

q La facilità di reperimento e l’assenza di costi sono tra i fattori che hanno favorito il successo di R. E’ sufficiente aprire un programma per la navigazione di internet comunemente denominato browser e visitare il sito http://www.r-project.org.

Page 3: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Che cosa è

q R è un ambiente di programmazione (un insieme di funzioni, librerie, oggetti)

q R è specializzato in analisi dei dati e rappresentazioni grafiche

q R opera su sistemi operativi UNIX, Windows e Macintosh

q R è ’cugino’ di S: entrambi dialetti del più noto S-plus.

Page 4: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

R è "free"

Free nel senso di gratis Free nel senso di "libero". R è, infatti, un programma open source e la libertà è

quella di: q usare R per qualsiasi scopo q studiare il software e adattarlo alle proprie necessità q sviluppare il software e rilasciare pubblicamente i

propri miglioramenti in modo che chiunque possa beneficiarne

q copiare e distribuire il software

Page 5: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

La pagina web di R

La pagina web cui fa riferimento R è: http://www.r-project.org Da questo indirizzo è possibile: Avere informazioni sul software, sugli aggiornamenti e cercare informazioni collegate Scaricare manuali e documentazione sull’utilizzo di R Accedere al CRAN (Comprehensive R Archive Network) da cui è possibile: Scaricare una copia del programma la versione precompilata, il

codice sorgente Scaricare i pacchetti aggiuntivi

Page 6: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Installazione di R

La versione corrente di R è R 2.12.2 Per installare R per Windows si seguano i seguenti passi: Da http://www.r-project.org accedere al CRAN; Scegliere da dove scaricare l’eseguibile di R (ad esempio

da http://cran.stat.unipd.it/) selezionare il link Windows (o il sistema operativo in

uso) nella pagina aperta cliccare sul link base; scaricare R-2.10.1-win32.exe (circa 32 Mb) Eseguire il file scaricato seguendo le istruzioni fornite.

Page 7: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

R è un progetto di collaborazione con molti contributi esterni.

Scrivi ’contributors()’ per maggiori informazioni e ’citation()’ per sapere come citare R o i pacchetti di R nelle pubblicazioni. Scrivi ’demo()’ per una dimostrazione, ’help()’ per la guida in linea, o ’help.start()’ per l’help navigabile con browser HTML.

Scrivi ’q()’ per uscire da R.

D. Fioredistella IEZZI e-mail: [email protected]

Page 8: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

La procedura di caricamento ed attivazione del programma R consiste nel procedere ad un doppio click sull’icona del programma che normalmente viene visualizzato sul Desktop del sistema operativo. Apparirà la cosiddetta console di R con il seguente simbolo:!

>!detto prompt dei comandi che segnala che R è disponibile ad accettare comandi da digitare sulla corrispondente linea. I comandi verranno eseguiti solo se scritti in modo sintatticamente corretto e completati con il tasto di Invio [Return]. !

!

La console

Page 9: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Operazioni numeriche

Page 10: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Operazioni logiche

Page 11: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

e-mail: [email protected]

Il comando di assegnazione per caratteri numerici

Per assegnare un valore ad un oggetto: <nome oggetto> <- <valore> oppure <nome oggetto> = <valore> Ad esempio > x <- 4 > y <- 3*2 > x > y

[1] FALSE abbiamo così creato l’oggetto x che contiene il valore 4. Un’ulteriore assegnazione modifica il valore > x <- 2 > x [1] 2

Page 12: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

e-mail: [email protected]

Il comando di assegnazione per caratteri stringa

Per assegnare un ad un oggetto: < nome oggetto><-”caratteri stringa” oppure <nome oggetto> = “caratteri stringa“ Ad esempio

d<-"prova"

> d

[1] "prova" > d="Ciao" > e=“Simona"

> d

[1] "Ciao"

Page 13: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Gestione degli oggetti: ls()

Il comando ls() (o l’equivalente objects()) fornisce una lista di oggetti

presenti nel workspace

> x <- 2

> ls()

[1] "x" "y"

> z <- 5

> ls()

[1] "x" "y" "z"

Page 14: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Gestione degli oggetti: ls()

Come è organizzata la memoria della sessione di lavoro e che fa in modo che R riesce a ricordare il contenuto dell’oggetto denominato a? In effetti il contenuto della memoria (temporanea) della sessione corrente di R, cominciata nel momento in cui è apparsa la console, può essere visualizzato attraverso il comando ls()

Page 15: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Gestione degli oggetti: ls()

È possibile anche cancellare rimuovere dalla memoria oggetti indesiderati (magari perché occupano troppo spazio in memoria) con il comando rm(...). La sintassi della funzione rm(...) prevede come argomento o il singolo nome dell’oggetto oppure una sequenza di nomi separati da una virgola oppure ancora un vettore (di modo ’character’) contenente la lista degli oggetti da rimuovere. Tali oggetti saranno memorizzati nella directory di lavoro corrente laddove si decidesse di uscire dalla sessione di lavoro con il comando q() rispondendo affermativamente alla richiesta di salvataggio dell’area (memoria) di lavoro.

Page 16: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Come facciamo a sapere qual è la directory di lavoro corrente e come possiamo eventualmente

modificarla? I due comandi che svolgono tali compiti sono getwd() e

setwd(...). Quest’ultimo richiede come argomento una stringa contenente tutto il percorso desiderato con il particolare accorgimento che il percorso anziché i simboli backslash \ usualmente impiegati nei sistemi Windows richiede l’uso dei simboli slash / tipicamente adottato nei sistemi Unix-Linux-like. Alternativamente si può sostituire il backslash \ con un doppio backslash \\. Come esempio visualizziamo i comandi della seguente sessione.

Page 17: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Sistema di aiuto in linea

help(nome esatto del comando) o ?<nome esatto del comando> apre una pagina del manuale relativa al comando help.search("stringa") ricerca informazioni sull’argomento

nel sistema di help restituisce una lista di comandi collegati

alla stringa cercata. > help(rm) > help(rm) > ?rm > help(rm)

Page 18: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Contenuto di una pagina del manuale

q Description: descrizione generale q Usage: sintassi q Arguments: dettaglio sugli argomenti del comando

q Details: dettagli tecnici q Value: risultato dell’esecuzione q References: eventuali riferimenti bibliografici q See Also: comandi collegati q Examples: istruzioni eseguibili

Page 19: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Gestione dei file: salvataggio e lettura

•  Salvataggio degli oggetti in R, ossia del file .Rdata: dal menù File scegliere Salva area di lavoro della cronologia, ossia del file .Rhistory: dal menù File scegliere Salva cronologia •  Lettura degli oggetti in R, ossia del file .Rdata: dal menù File scegliere Carica area di lavoro della cronologia, ossia del file .Rhistory: dal menù File scegliere Carica cronologia oppure doppio clic sull’icona .Rdata relativa alla WD salvata. In questo modo si apre una sessione di R in cui risultano caricati sia gli oggetti, sia la cronologia.

Page 20: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Tipi di oggetti

Un oggetto in R può essere di tipo q vector q matrix (array) q list q factor q data.frame q function

Page 21: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Vettori: assegnazione

Un vettore si assegna col comando > x <- c(31,1,7,3) > x [1] 31 1 7 3 l’oggetto x è ora un vettore > is.vector(x) [1] TRUE

Page 22: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Funzioni su un vettore

R dispone di varie funzioni il cui argomento è un vettore

>x<-c(31,1,7,3) > min(x) [1] 1 > sum(x) [1] 42 > range(x) [1] 1 31 > length(x) [1] 4

> mean(x) [1] 10.5

Page 23: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Assegnazione del valore di una funzione

Il risultato di una funzione può anche essere

memorizzato in un altro oggetto > sommax <- sum(x) > sommax [1] 42 Di che tipo sia l’oggetto che si crea dipende dal value

che la funzione restituisce > rangex <- range(x) > rangex [1] 1 31

Page 24: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Operazioni aritmetiche sui vettori

Una normale operazione binaria (+,-,*,/,ˆ) avente per argomenti due vettori viene eseguita elemento per elemento, sicché

> x [1] 31 1 7 3 > y [1] 3 4 6 8 > x+y [1] 34 5 13 11

Page 25: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Operazioni logiche sui vettori

La stessa regola che vale per le operazioni aritmetiche vale per le operazioni logiche:

> x [1] 31 1 7 3 > y [1] 3 4 6 8 > x>y [1] TRUE FALSE TRUE FALSE

Page 26: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Vettori di diversa lunghezza

Se un’operazione viene eseguita tra vettori di lunghezza diversa il vettore più corto viene ripetuto tante volte quante è necessario per eguagliare la lunghezza del vettore più lungo

> x [1] 1 8 > y [1] 3 5 1 9 > x+y [1] 4 13 2 17

Page 27: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Vettori di diversa lunghezza

Questo comportamento può essere molto utile, ad esempio consente di moltiplicare un vettore per uno scalare in maniera immediata

> y [1] 3 5 1 9 > x [1] 2 > y [1] 3 5 1 9 > y/x [1] 1.5 2.5 0.5 4.5

Page 28: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Vettori di diversa lunghezza

Un messaggio di avviso viene dato solo se la lunghezza del vettore lungo non è multipla di quella del vettore corto

> x [1] 1 8 2 > y [1] 3 5 1 9 > x*y [1] 3 40 2 9 Warning message: longer object length is not a multiple

of shorter object length in: y + x

Page 29: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Estrazione di elementi da un vettore

Per estrarre un sottovettore da un vettore facciamo

seguire al nome del vettore la parte da estrarre (la posizione dell’elemento da estrarre) racchiusa tra parentesi quadre, vi sono diversi modi per farlo, il primo e più intuitivo è

> y [1] 3 5 1 9 > y[1] [1] 3 > y[c(1,3)] [1] 3 1

Page 30: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Estrazione di elementi da un vettore

In modo complementare al metodo precedente possiamo

indicare, anziché gli elementi da estrarre, quelli da ignorare, indicandoli con indici

negativi

> y <- c(3, 5, 1, 9)

> y[1]

[1] 3

> y[-c(2,4)]

[1] 3 1

Page 31: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Estrazione di elementi da un vettore

Un altro metodo consiste nell’indicare, sempre tra parentesi, quali elementi conservare e quali tralasciare mediante un vettore di lunghezza pari al vettore di partenza con il valore TRUE in corrispondenza agli elementi da considerare e FALSE in corrispondenza agli elementi da ignorare

> y <- c(3, 5, 1, 9) > y[c(T,F,T,F)] [1] 3 1

Page 32: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Estrazione di elementi da un vettore

Il metodo appena indicato è utile in particolare quando si vuole determinare quali elementi estrarre in base ad una condizione

> y <- c(3, 5, 1, 9) > y[y<4] [1] 3 1 condizione che può coinvolgere un secondo vettore

> x <- c(1, 0, 1, 0) > y[x==1] [1] 3 1

Page 33: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Estrazione di elementi da un vettore

Vogliamo costruire un vettore che contiene il primo e il terzo elemento di

> y <- c(3, 5, 1, 9) disponiamo di tre metodi x <- y[c(1,3)] x <- y[c(T,F,T,F)] x <- y[-c(2,4)] Il risultato, lo stesso, è > x [1] 3 1

Page 34: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Alcuni particolari vettori

x <- seq(from=1,to=5,by=1)

x <- 1:5

x <- seq(from=1,to=5,length=5)

x <- rep(1:5,n=5)

Page 35: Corso Introduttivo allʼutilizzo di R - DidatticaWEBdidattica.uniroma2.it/assets/uploads/corsi/39156/Lab1_R.pdf · Corso Introduttivo allʼutilizzo di R! Prof.ssa D.F. Iezzi stella.iezzi@uniroma2.it

D. Fioredistella IEZZI e-mail: [email protected]

Indicatori di categoria o fattori

Supponiamo di effettuare un esperimento su 6 soggetti, 2 dei quali ricevono il trattamento “a”, 3 quello “b” e 1 quello “c”. Questa informazione può essere salvata nel seguente modo:

> trattamento<-factor (c('a', 'b', 'b', 'c', 'a', 'b')) > trattamento [1] a b b c a b Levels: a b c Supponiamo che gli esiti dell’esperimento sui 6 individui siano i

seguenti: risposta<-c(10,3, 7, 6, 4, 5) Allora possiamo trovare gli esiti di un particolare trattamento con

il comando > risposta[trattamento=="a"] [1] 10 4 > risposta[trattamento=="b"] [1] 3 7 5


Recommended