1.6 Parentesi

Le parentesi in \(\mathsf{R}\) (come in generale in ogni linguaggio di programmazione) assegnano un significato diverso alle porzioni di codice che delimitano.

  • Le parentesi tonde funzionano come nell’algebra. Per esempio
2 + 3 * 4
#> [1] 14

non è equivalente a

(2 + 3) * 4
#> [1] 20

Le due istruzioni precedenti producono risultati diversi perché, se la sequenza delle operazioni algebriche non viene specificata dalle parentesi, \(\mathsf{R}\) assegna alle operazioni algebriche il seguente ordine di priorità decrescente: esponenziazione, moltiplicazione / divisione, addizione / sottrazione, confronti logici (<, >, <=, >=, ==, !=). È sempre una buona idea rendere esplicito l’ordine delle operazioni algebriche che si vuole eseguire mediante l’uso delle parentesi tonde.
Le parentesi tonde vengono anche utilizzate per le funzioni, come vedremo nei prossimi paragrafi. Tra le parentesi tonde avremo dunque l’oggetto a cui vogliamo applicare la funzione e gli argomenti passati alla funzione.

  • Le parentesi graffe sono destinate alla programmazione. Un blocco tra le parentesi graffe viene letto come un oggetto unico che può contenere una o più istruzioni.

  • Le parentesi quadre vengono utilizzate per selezionare degli elementi, per esempio all’interno di un vettore, o di una matrice, o di un data.frame. L’argomento entro le parentesi quadre può essere generato da espressioni logiche.