# Gli operatori in R: una panoramica

Gli operatori sono componenti fondamentali di ogni linguaggio di programmazione, compreso R. Con gli operatori in R puoi eseguire assegnazioni, calcoli aritmetici o confronti e addirittura valutare espressioni logiche.

## Che cosa sono esattamente gli operatori in R?

Gli operatori in R sono **speciali simboli o stringhe di caratteri** utilizzati per eseguire operazioni su valori e variabili. Queste operazioni possono essere calcoli aritmetici, confronti, assegnazioni e molte altre ancora. Gli operatori svolgono un compito essenziale nella trasformazione, manipolazione e analisi di dati in R e costituiscono uno dei pilastri fondamentali della [programmazione in R](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/linguaggio-di-programmazione-r/).

Consiglio R è adatto a svolgere una gran varietà di progetti diversi. Se desideri mettere online uno dei tuoi progetti, la soluzione giusta può essere uno spazio web personale. Con IONOS puoi noleggiare uno [spazio web](https://www.ionos.it/hosting/spazio-web "Spazio web con IONOS") per l’hosting dei tuoi progetti web professionali.

## Tipi di operatori in R

È possibile suddividere gli operatori in R in diverse tipologie **a seconda della funzionalità**. Ricorda che questo elenco non è definitivo, ma contiene comunque i tipi di operatori in R più importanti.

- **Operatori aritmetici**: sono utilizzati per eseguire calcoli aritmetici.
- **Operatori logici**: gli operatori logici in R sono utilizzati per confrontare valori di verità (o valori logici) e valutare espressioni logiche. Come risultato restituiscono un valore di verità.
- **Operatori bit per bit**: permettono di manipolare i bit in un numero.
- **Operatori di assegnazione**: gli operatori di assegnazione sono utilizzati per assegnare valori alle variabili.
- **Operatori di confronto**: questo tipo di operatori in R serve a confrontare i valori e creare espressioni logiche.

A differenza di molti altri linguaggi di programmazione, in R **non esiste un operatore esplicito di incremento o decremento**. Se ti serve questo tipo di funzionalità, ad esempio in cicli for o [cicli while in R](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/r-ciclo-while/), puoi eseguire un’addizione o una sottrazione con 1.

## R: gli operatori aritmetici

Gli operatori aritmetici sono utilizzati per eseguire **calcoli matematici** come le operazioni fondamentali.

<table>
  <thead>
    <tr>
      <th><strong>Operatore</strong></th>
      <th><strong>Descrizione</strong></th>
      <th><strong>Esempio</strong></th>
      <th><strong>Risultato</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>+</td>
      <td>Addizione di numeri</td>
      <td>5 + 3</td>
      <td>8</td>
    </tr>
    <tr>
      <td>-</td>
      <td>Sottrazione di numeri</td>
      <td>10 – 5</td>
      <td>5</td>
    </tr>
    <tr>
      <td>*</td>
      <td>Moltiplicazione di numeri</td>
      <td>3* 5</td>
      <td>15</td>
    </tr>
    <tr>
      <td>/</td>
      <td>Divisione di numeri</td>
      <td>10 / 2</td>
      <td>5</td>
    </tr>
    <tr>
      <td>%%</td>
      <td>Modulo; dà il resto di una divisione</td>
      <td>10%% 4</td>
      <td>2</td>
    </tr>
    <tr>
      <td>%/%</td>
      <td>Divisione fra numeri interi</td>
      <td>11 %/% 3</td>
      <td>3</td>
    </tr>
    <tr>
      <td>^</td>
      <td>Elevamento a potenza</td>
      <td>2 ^ 3</td>
      <td>8</td>
    </tr>
  </tbody>
</table>

### Gli operatori aritmetici in R nel codice

```R
a <- 7
b <- 3
addizione <- a + b
sottrazione <- a - b
moltiplicazione <- a * b
divisione <- a / b
modulo <- a %% b
divisione fra numeri interi <- a %/% b
elevamento a potenza <- 2^3
```

## R: gli operatori logici

Gli operatori logici sono utilizzati in R per **confrontare valori di verità** e valutare espressioni logiche. Come risultato danno sempre un valore di verità, che può essere *TRUE* o *FALSE*.

<table>
  <thead>
    <tr>
      <th><strong>Operatore</strong></th>
      <th><strong>Descrizione</strong></th>
      <th><strong>Esempio</strong></th>
      <th><strong>Risultato</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>&amp;</td>
      <td>AND logico; restituisce *TRUE* se entrambi i valori sono *TRUE*</td>
      <td>TRUE &amp; FALSE</td>
      <td>FALSE</td>
    </tr>
    <tr>
      <td>`</td>
      <td>`</td>
      <td>Operatore pipe in R per OR logico; restituisce *TRUE* se uno dei due valori è *TRUE*</td>
      <td>`TRUE</td>
    </tr>
    <tr>
      <td>!</td>
      <td>NOT logico; inverte il valore di verità</td>
      <td>!TRUE</td>
      <td>FALSE</td>
    </tr>
  </tbody>
</table>

### Esempi di codice per gli operatori logici in R

```R
x <- TRUE
y <- FALSE
operatore_and <- x & y
operatore_or <- x | y
operatore_not <- !x
```

## Operatori bit per bit

Gli operatori bit per bit permettono di manipolare i bit in un numero. Per capire l’esatto funzionamento di questi operatori devi conoscere a fondo il [sistema binario](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/codice-binario/), ossia il sistema numerico in base 2.

<table>
  <thead>
    <tr>
      <th><strong>Operatore</strong></th>
      <th><strong>Descrizione</strong></th>
      <th><strong>Esempio</strong></th>
      <th><strong>Risultato</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>bitwAnd</td>
      <td>AND bit per bit</td>
      <td>bitwAnd(5,3)</td>
      <td>1</td>
    </tr>
    <tr>
      <td>bitwOr</td>
      <td>OR bit per bit</td>
      <td>bitwOr(5,3)</td>
      <td>7</td>
    </tr>
    <tr>
      <td>bitwXor</td>
      <td>XOR bit per bit (OR esclusivo)</td>
      <td>bitwXor(5,3)</td>
      <td>6</td>
    </tr>
    <tr>
      <td>bitwNot</td>
      <td>NOT bit per bit</td>
      <td>bitwNot(5)</td>
      <td>-6</td>
    </tr>
    <tr>
      <td>bitwShiftL</td>
      <td>Spostamento a sinistra bit per bit -&gt; i bit vengono spostati verso sinistra di un numero di bit corrispondente a quello indicato nel secondo parametro</td>
      <td>bitwShiftL(5, 1)</td>
      <td>10</td>
    </tr>
    <tr>
      <td>bitwShiftR</td>
      <td>Spostamento a destra bit per bit -&gt; i bit vengono spostati verso destra di un numero di bit corrispondente a quello indicato nel primo parametro</td>
      <td>bitwShiftR(5, 1)</td>
      <td>2</td>
    </tr>
  </tbody>
</table>

### Gli operatori bit per bit in R nel codice

```R
a <- 5
b <- 3
and_bit_per_bit <- bitwAnd(a, b)
or_bit_per_bit <- bitwOr(a, b)
xor_bit_per_bit <- bitwXor(a, b)
not_bit_per_bit <- bitwNot(a)
spostamento_a_sinistra <- bitwShiftL(a, 1)
spostamento_a_destra <- bitwShiftR(a, 1)
```

## R: gli operatori di confronto

Gli operatori di confronto permettono di confrontare dei valori. Come risultato danno un valore booleano, ossia *TRUE* o *FALSE*.

<table>
  <thead>
    <tr>
      <th><strong>Operatore</strong></th>
      <th><strong>Descrizione</strong></th>
      <th><strong>Esempio</strong></th>
      <th><strong>Risultato</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>==</td>
      <td>Verifica l’uguaglianza di due valori</td>
      <td>5 == 3</td>
      <td>FALSE</td>
    </tr>
    <tr>
      <td>!=</td>
      <td>Verifica la disuguaglianza di due valori</td>
      <td>5 != 3</td>
      <td>TRUE</td>
    </tr>
    <tr>
      <td>&lt;</td>
      <td>Verifica se il valore sinistro è minore di quello destro</td>
      <td>5 &lt; 3</td>
      <td>FALSE</td>
    </tr>
    <tr>
      <td>&gt;</td>
      <td>Verifica se il valore sinistro è maggiore di quello destro</td>
      <td>5 &amp;gt; 3</td>
      <td>TRUE</td>
    </tr>
    <tr>
      <td>&lt;=</td>
      <td>Verifica se il valore sinistro è minore o uguale a quello destro</td>
      <td>5 &lt;= 3</td>
      <td>FALSE</td>
    </tr>
    <tr>
      <td>&gt;=</td>
      <td>Verifica se il valore sinistro è maggiore o uguale a quello destro</td>
      <td>5 &amp;gt;= 3</td>
      <td>TRUE</td>
    </tr>
  </tbody>
</table>

### Operatori di confronto nel codice

```R
x <- 5
y <- 3
uguale <- x == y
diseguale <- x != y
minore_di <- x < y
maggiore_di <- x > y
minore_o_uguale <- x <= y
maggiore_o_uguale <- x >= y
```

## R: gli operatori di assegnazione

Gli operatori di assegnazione servono ad **assegnare determinati valori alle variabili**. Sono un componente fondamentale di ogni linguaggio di programmazione. In R sono disponibili diversi operatori di assegnazione, ma nella maggior parte dei casi si utilizza l’operatore `<-`.

<table>
  <thead>
    <tr>
      <th><strong>Operatore</strong></th>
      <th><strong>Descrizione</strong></th>
      <th><strong>Esempio</strong></th>
      <th><strong>Risultato</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>=</td>
      <td>Operatore di assegnazione di livello più alto, utilizzato soprattutto nelle funzioni per assegnare argomenti</td>
      <td>matrix(1, nrow = 2)</td>
      <td>Dopo l’esecuzione non esistono più variabili con il nome *nrow*.</td>
    </tr>
    <tr>
      <td>&lt;-</td>
      <td>Operatore di assegnazione freccia, utilizzato per assegnare alle variabili valori numerici semplici o valori complessi come le [liste R](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/liste-in-r/) e creare nuovi oggetti</td>
      <td>matrix(1, nrow &lt;- 2)</td>
      <td>Dopo l’esecuzione è presente una variabile con il nome *nrow*.</td>
    </tr>
    <tr>
      <td>&lt;&lt;-</td>
      <td>Operatore di assegnazione in funzioni che controlla se la definizione della variabile esiste nell’ambiente e, se non la trova, crea una nuova variabile</td>
      <td>a &lt;&lt;- 1</td>
      <td>Se *a* è già presente, *a* ha ora il valore 1; in caso contrario, viene creata una nuova *a* con valore 1.</td>
    </tr>
  </tbody>
</table>

### Esempi di codice per gli operatori di assegnazione in R

```R
matrix(1, nrow=2)
b <- 3
test <- function() {
    a <<- 1
}
```


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/operatori-r/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/operatori-r/) for AI/LLM consumption.