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