Laboratorio 1 Strumenti quantitativi per la gestione Lab
Transcript
Laboratorio 1 Strumenti quantitativi per la gestione Lab
2/23/2015 Laboratorio 1 Laboratorio 1 Strumenti quantitativi per la gestione Emanuele taufer Lab: Introduzione a R Comandi di base Lab: Introduzione a R Comandi di base R utilizza funzioni per eseguire le operazioni. Per eseguire una funzione chiamata funcname , digitiamo funcname (input1, input2) , dove gli input (o argomenti) input1 e input2 dicono a R come eseguire la funzione. Una funzione può avere un qualsiasi numero di input. Ad esempio, per creare un vettore di numeri, utilizziamo la funzione c() (per concatenate). Il comando seguente indica a R di unire insieme i numeri 1, 3, 2, e 5, e di salvarli nel vettore x . Quando si digita x , il vettore viene stamapto sullo schermo. x <‐ c(1,3,2,5) x ## [1] 1 3 2 5 x = c(1,6,2) x ## [1] 1 6 2 Si noti che > (che si vede al prompt) di R non è parte del comando; piuttosto, viene stampato da R per indicare che è pronto per un altro comando da inserire. In caso contratrio viene digitato un + che ci chiede di completare il comando iniziato in un riga precedente. file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Labs/Lab_1__comandi_base.html 1/6 2/23/2015 Laboratorio 1 Possiamo anche salvare gli oggetti utilizzando = anziché <‐ : y = c(1,4,3) Digitando freccia su più volte si possono visualizzare i comandi precedenti, che possono poi essere modificati. Inoltre, digitando ?funcname induce R ad aprire una nuova finestra di aiuto con informazioni aggiuntive sulla funzione funcname . Possiamo dire a R di sommare due vettori x ed y . La somma sarà fatta eelmento per elemento. Tuttavia, x e y devono essere della stessa lunghezza. Possiamo controllare la loro lunghezza utilizzando la funzione length() length(x) ## [1] 3 length(y) ## [1] 3 x+y ## [1] 2 10 5 Il comando ls() consente di visualizzare una lista di tutti gli oggetti, quali dati e funzioni, che abbiamo in memoria. La funzione rm() può essere utilizzata per eliminare quelli che non vogliamo. ls() ## [1] "x" "y" rm(x,y) ls() ## character(0) E’ anche possibile rimuovere tutti gli oggetti contemporaneamente file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Labs/Lab_1__comandi_base.html 2/6 2/23/2015 Laboratorio 1 rm(list=ls()) La funzione matrix() può essere utilizzata per creare una matrice di numeri. L’Help rivela che la funzione matrix() ha diversi input; ma per ora ci concentriamo sui primi tre: i dati (i valori della matrice), il numero di righe, e il numero di colonne. In primo luogo, creiamo una semplice matrice. x=matrix(data=c(1,2,3,4), nrow=2, ncol=2) x ## [,1] [,2] ## [1,] 1 3 ## [2,] 2 4 Nota che potremmo benissimo omettere di digitare data= , nrow= , e ncol= in matrix() nel comando precedente: cioè, potremmo semplicemente digitare x=matrix(c(1,2,3,4),2,2) e questo avrebbe lo stesso effetto. Tuttavia, a volte può essere utile specificare i nomi degli argomenti inputati, se vogliamo cambiare l’ordine degli input rispetto a quanto specificato nell’Help. Come illustra il prossimo esempio, per default, R crea matrici compilando per colonne in successione. Alternativamente, l’opzione byrow = TRUE può essere utilizzata per popolare la matrice in ordine di riga. matrix(c(1,2,3,4),2,2,byrow=TRUE) ## [,1] [,2] ## [1,] 1 2 ## [2,] 3 4 Si noti che il comando sopra non ha assegnato alla matrice alcun nome o simbolo (ad esempio x ). In questo caso, la matrice viene stampata sullo schermo, ma non viene salvata per calcoli successivi. La funzione sqrt() restituisce la radice quadrata di ogni elemento di un vettore o una matrice. Il comando x^2 eleva al quadrato ogni elemento di x . sqrt(x) file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Labs/Lab_1__comandi_base.html 3/6 2/23/2015 Laboratorio 1 ## [,1] [,2] ## [1,] 1.000000 1.732051 ## [2,] 1.414214 2.000000 x^2 ## [,1] [,2] ## [1,] 1 9 ## [2,] 4 16 La funzione rnorm () genera un vettore di variabili casuali normali; il primo argomento è n , la dimensione del campione. Ogni volta che si richiama questa funzione, si ottengono dei valori diversi. Creiamo due serie correlate di numeri, x ed y , e utilizziamo la funzione cor() per calcolarne la correlazione x=rnorm(50) y=x+rnorm(50,mean=50,sd=.1) cor(x,y) ## [1] 0.9963002 Per default, rnorm() crea variabili casuali normali standard con una media 0 e una deviazione standard 1 . Tuttavia, la media e la deviazione standard possono essere modificate utilizzando gli argomenti mean e sd , come sopra illustrato. A volte vogliamo che il nostro codice riproduca lo stesso set di numeri casuali; per questo possiamo usare la funzione set.seed() . La funzione set.seed ha per argomento un numero intero (arbitrario). set.seed(1303) rnorm(50) file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Labs/Lab_1__comandi_base.html 4/6 2/23/2015 Laboratorio 1 ## [1] ‐1.1439763145 1.3421293656 2.1853904757 0.5363925179 0.06319296 65 ## [6] 0.5022344825 ‐0.0004167247 0.5658198405 ‐0.5725226890 ‐1.11022500 73 ## [11] ‐0.0486871234 ‐0.6956562176 0.8289174803 0.2066528551 ‐0.23567450 91 ## [16] ‐0.5563104914 ‐0.3647543571 0.8623550343 ‐0.6307715354 0.31360212 52 ## [21] ‐0.9314953177 0.8238676185 0.5233707021 0.7069214120 0.42020432 56 ## [26] ‐0.2690521547 ‐1.5103172999 ‐0.6902124766 ‐0.1434719524 ‐1.01352740 99 ## [31] 1.5732737361 0.0127465055 0.8726470499 0.4220661905 ‐0.01881579 17 ## [36] 2.6157489689 ‐0.6931401748 ‐0.2663217810 ‐0.7206364412 1.36773420 65 ## [41] 0.2640073322 0.6321868074 ‐1.3306509858 0.0268888182 1.04063632 08 ## [46] 1.3120237985 ‐0.0300020767 ‐0.2500257125 0.0234144857 1.65987065 57 set.seed(3) y=rnorm(100) Le funzioni mean() e var() possono essere utilizzate per calcolare la media e la varianza di un vettore di numeri. Applicando sqrt() al risultato di var() fornirà la deviazione standard. Oppure possiamo semplicemente usare la funzione sd() . set.seed(1303) rnorm(50) file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Labs/Lab_1__comandi_base.html 5/6 2/23/2015 Laboratorio 1 ## [1] ‐1.1439763145 1.3421293656 2.1853904757 0.5363925179 0.06319296 65 ## [6] 0.5022344825 ‐0.0004167247 0.5658198405 ‐0.5725226890 ‐1.11022500 73 ## [11] ‐0.0486871234 ‐0.6956562176 0.8289174803 0.2066528551 ‐0.23567450 91 ## [16] ‐0.5563104914 ‐0.3647543571 0.8623550343 ‐0.6307715354 0.31360212 52 ## [21] ‐0.9314953177 0.8238676185 0.5233707021 0.7069214120 0.42020432 56 ## [26] ‐0.2690521547 ‐1.5103172999 ‐0.6902124766 ‐0.1434719524 ‐1.01352740 99 ## [31] 1.5732737361 0.0127465055 0.8726470499 0.4220661905 ‐0.01881579 17 ## [36] 2.6157489689 ‐0.6931401748 ‐0.2663217810 ‐0.7206364412 1.36773420 65 ## [41] 0.2640073322 0.6321868074 ‐1.3306509858 0.0268888182 1.04063632 08 ## [46] 1.3120237985 ‐0.0300020767 ‐0.2500257125 0.0234144857 1.65987065 57 set.seed(3) y=rnorm(100) mean(y) ## [1] 0.01103557 var(y) ## [1] 0.7328675 sqrt(var(y)) ## [1] 0.8560768 sd(y) ## [1] 0.8560768 file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Labs/Lab_1__comandi_base.html 6/6