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().

vettore <- c(1, 2, 3)

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.

vettore * 2
## [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:

vettore0 <- c(1, 2, 3, 4)

vettore0
## [1] 1 2 3 4
vettore1 <- c(1, 2)

vettore1
## [1] 1 2
vettore0 + vettore1
## [1] 2 4 4 6
vettore0 * vettore1
## [1] 1 4 3 8

Possiamo selezionare gli elementi di un vettore specificandone la posizione tra parentesi quadre [].

vettore <- c(5, 3, 6, 18, -1)

vettore[1]
## [1] 5
vettore[2]
## [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.

vettore[c(1, 2, 5)]
## [1]  5  3 -1
vettore >= 5
## [1]  TRUE FALSE  TRUE  TRUE FALSE
vettore[vettore >= 5]
## [1]  5  6 18
1:4
## [1] 1 2 3 4
vettore[1:4]
## [1]  5  3  6 18

Per creare un vettore di numeri reali equispaziati usiamo il comando seq().

x <- seq(-1, 1, by = 0.1)

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