A.6 Vettori
I dati raccolti sperimentalmente spesso sono sequenze di osservazioni (ad esempio corrispondenti a diversi istanti nel tempo) che possiamo rappresentare come vettori. Per costruire un vettore usiamo la funzione di concatenazione c()
.
<- c(1, 2, 3)
vettore
vettore
## [1] 1 2 3
In realtà R non distingue tra vettore e scalare. Questo è utile ad esempio per le operazioni matematiche che vengono eseguite su ciancun elemento.
* 2 vettore
## [1] 2 4 6
+ vettore vettore
## [1] 2 4 6
* vettore vettore
## [1] 1 4 9
exp(vettore)
## [1] 2.718282 7.389056 20.085537
Attenzione però quando operiamo con vettori di lunghezze diverse:
<- c(1, 2, 3, 4)
vettore0
vettore0
## [1] 1 2 3 4
<- c(1, 2)
vettore1
vettore1
## [1] 1 2
+ vettore1 vettore0
## [1] 2 4 4 6
* vettore1 vettore0
## [1] 1 4 3 8
Possiamo selezionare gli elementi di un vettore specificandone la posizione tra parentesi quadre []
.
<- c(5, 3, 6, 18, -1)
vettore
1] vettore[
## [1] 5
2] vettore[
## [1] 3
Attenzione: diversamente da altri linguaggi, R conta le posizioni a partire da \(1\), non da \(0\).
Possiamo anche inserire un vettore all’interno delle parentesi quadre per selezionare un sottovettore del vettore iniziale. Oppure inserire un vettore di oggetti LOGICAL, in tal caso si seleziona il sottovettore corrispondente alle componenti TRUE
.
c(1, 2, 5)] vettore[
## [1] 5 3 -1
>= 5 vettore
## [1] TRUE FALSE TRUE TRUE FALSE
>= 5] vettore[vettore
## [1] 5 6 18
1:4
## [1] 1 2 3 4
1:4] vettore[
## [1] 5 3 6 18
Per creare un vettore di numeri reali equispaziati usiamo il comando seq()
.
<- seq(-1, 1, by = 0.1)
x
x
## [1] -1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6
## [18] 0.7 0.8 0.9 1.0