Upload
lephuc
View
218
Download
0
Embed Size (px)
Citation preview
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.
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.
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
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
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.
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]
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
D. Fioredistella IEZZI e-mail: [email protected]
Operazioni numeriche
D. Fioredistella IEZZI e-mail: [email protected]
Operazioni logiche
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
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"
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"
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()
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.
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.
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)
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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