1.15 Vettori aritmetici

L’esempio più semplice che illustra come si svolgono le operazioni vettorializzate riguarda le operazioni algebriche applicate ai vettori. I vettori, infatti, possono essere utilizzati in espressioni numeriche nelle quali le operazioni algebriche vengono eseguite “elemento per elemento”.

Per illustrare questo concetto, definiamo il vettore die che contiene i possibili risultati del lancio di un dado:

die <- c(1, 2, 3, 4, 5, 6)
die
#> [1] 1 2 3 4 5 6

Supponiamo di volere sommare \(10\) a ciascun elemento del vettore die. Dato che le operazioni sui vettori sono eseguite elemento per elemento, per ottenere questo risultato è sufficiente eseguire l’istruzione:

die + 10
#> [1] 11 12 13 14 15 16

Si noti come la costante \(10\) sia stata sommata a ciascun elemento del vettore. In maniera corrispondente, l’istruzione

die - 1
#> [1] 0 1 2 3 4 5

sottrarrà un’unità da ciascuno degli elementi del vettore die.

Se l’operazione aritmetica coinvolge due o più vettori, R allinea i vettori ed esegue una sequenza di operazioni elemento per elemento. Per esempio, l’istruzione

die * die
#> [1]  1  4  9 16 25 36

fa sì che i due vettori vengano disposti l’uno di fianco all’altro per poi moltiplicare gli elementi corrispondenti: il primo elemento del primo vettore per il primo elemento del secondo vettore e così via. Il vettore risultante avrà la stessa dimensione dei due vettori che sono stati moltiplicati, come indicato qui sotto:

\[ \begin{array}{ccccc} 1 & \times & 1 & \to & 1 \\ 2 & \times & 2 & \to & 4 \\ 3 & \times & 3 & \to & 9 \\ 4 & \times & 4 & \to & 16 \\ 5 & \times & 5 & \to & 25 \\ 6 & \times & 6 & \to & 36 \\ \hline \verb+die+ & * & \verb+die+ & = & \end{array} \]

Oltre agli operatori aritmetici elementari +, -, *, /, e ^ per l’elevamento a potenza, sono disponibili le più comuni funzioni matematiche: log(), exp(), sin(), cos(), tan(), sqrt(), max(), min() e così via. Altre funzioni di uso comune sono: range() che restituisce un vettore c(min(x), max(x)); sort() che restituisce un vettore ordinato; length(x) che restituisce il numero di elementi di x; sum(x) che dà la somma degli elementi di x, mentre prod(x) dà il loro prodotto. Due funzioni statistiche di uso comune sono mean(x), la media aritmetica, e var(x), la varianza.