R - Operatori

Un operatore è un simbolo che dice al compilatore di eseguire specifiche manipolazioni matematiche o logiche. Il linguaggio R è ricco di operatori incorporati e fornisce i seguenti tipi di operatori.

Tipi di operatori

Abbiamo i seguenti tipi di operatori nella programmazione R:

  • Operatori aritmetici
  • Operatori relazionali
  • Operatori logici
  • Operatori di assegnazione
  • Operatori vari

Operatori aritmetici

La tabella seguente mostra gli operatori aritmetici supportati dal linguaggio R. Gli operatori agiscono su ogni elemento del vettore.

Operatore Descrizione Esempio
+ Aggiunge due vettori
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v+t)

produce il seguente risultato:

[1] 10.0  8.5  10.0
- Sottrae il secondo vettore dal primo
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v-t)

produce il seguente risultato:

[1] -6.0  2.5  2.0
* Moltiplica entrambi i vettori
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v*t)

produce il seguente risultato:

[1] 16.0 16.5 24.0
/ Dividi il primo vettore con il secondo
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v/t)

Quando eseguiamo il codice sopra, produce il seguente risultato:

[1] 0.250000 1.833333 1.500000
%% Dare il resto del primo vettore con il secondo
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v%%t)

produce il seguente risultato:

[1] 2.0 2.5 2.0
% /% Il risultato della divisione del primo vettore con il secondo (quoziente)
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v%/%t)

produce il seguente risultato:

[1] 0 1 1
^ Il primo vettore elevato all'esponente del secondo vettore
v <- c( 2,5.5,6)
t <- c(8, 3, 4)
print(v^t)

produce il seguente risultato:

[1]  256.000  166.375 1296.000

Operatori relazionali

La tabella seguente mostra gli operatori relazionali supportati dal linguaggio R. Ciascun elemento del primo vettore viene confrontato con l'elemento corrispondente del secondo vettore. Il risultato del confronto è un valore booleano.

Operatore Descrizione Esempio
> Controlla se ogni elemento del primo vettore è maggiore dell'elemento corrispondente del secondo vettore.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v>t)

produce il seguente risultato:

[1] FALSE  TRUE FALSE FALSE
< Controlla se ogni elemento del primo vettore è minore dell'elemento corrispondente del secondo vettore.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v < t)

produce il seguente risultato:

[1]  TRUE FALSE  TRUE FALSE
== Controlla se ogni elemento del primo vettore è uguale all'elemento corrispondente del secondo vettore.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v == t)

produce il seguente risultato:

[1] FALSE FALSE FALSE  TRUE
<= Controlla se ogni elemento del primo vettore è minore o uguale all'elemento corrispondente del secondo vettore.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v<=t)

produce il seguente risultato:

[1]  TRUE FALSE  TRUE  TRUE
> = Controlla se ogni elemento del primo vettore è maggiore o uguale all'elemento corrispondente del secondo vettore.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v>=t)

produce il seguente risultato:

[1] FALSE  TRUE FALSE  TRUE
! = Controlla se ogni elemento del primo vettore è diverso dall'elemento corrispondente del secondo vettore.
v <- c(2,5.5,6,9)
t <- c(8,2.5,14,9)
print(v!=t)

produce il seguente risultato:

[1]  TRUE  TRUE  TRUE FALSE

Operatori logici

La tabella seguente mostra gli operatori logici supportati dal linguaggio R. È applicabile solo a vettori di tipo logico, numerico o complesso. Tutti i numeri maggiori di 1 sono considerati come valore logico VERO.

Ciascun elemento del primo vettore viene confrontato con l'elemento corrispondente del secondo vettore. Il risultato del confronto è un valore booleano.

Operatore Descrizione Esempio
& Si chiama operatore AND logico per elementi. Combina ogni elemento del primo vettore con l'elemento corrispondente del secondo vettore e fornisce un output TRUE se entrambi gli elementi sono TRUE.
v <- c(3,1,TRUE,2+3i)
t <- c(4,1,FALSE,2+3i)
print(v&t)

produce il seguente risultato:

[1]  TRUE  TRUE FALSE  TRUE
| Si chiama operatore OR logico per elemento. Combina ogni elemento del primo vettore con l'elemento corrispondente del secondo vettore e fornisce un output VERO se uno degli elementi è VERO.
v <- c(3,0,TRUE,2+2i)
t <- c(4,0,FALSE,2+3i)
print(v|t)

produce il seguente risultato:

[1]  TRUE FALSE  TRUE  TRUE
! Si chiama operatore NOT logico. Prende ogni elemento del vettore e fornisce il valore logico opposto.
v <- c(3,0,TRUE,2+2i)
print(!v)

produce il seguente risultato:

[1] FALSE  TRUE FALSE FALSE

L'operatore logico && e || considera solo il primo elemento dei vettori e fornisce un vettore di singolo elemento come output.

Operatore Descrizione Esempio
&& Chiamato operatore AND logico. Prende il primo elemento di entrambi i vettori e fornisce il VERO solo se entrambi sono VERO.
v <- c(3,0,TRUE,2+2i)
t <- c(1,3,TRUE,2+3i)
print(v&&t)

produce il seguente risultato:

[1] TRUE
|| Chiamato operatore OR logico. Prende il primo elemento di entrambi i vettori e fornisce il VERO se uno di essi è VERO.
v <- c(0,0,TRUE,2+2i)
t <- c(0,3,TRUE,2+3i)
print(v||t)

produce il seguente risultato:

[1] FALSE

Operatori di assegnazione

Questi operatori vengono utilizzati per assegnare valori ai vettori.

Operatore Descrizione Esempio

<-

o

=

o

<< -

Chiamato Assegnazione di sinistra
v1 <- c(3,1,TRUE,2+3i)
v2 <<- c(3,1,TRUE,2+3i)
v3 = c(3,1,TRUE,2+3i)
print(v1)
print(v2)
print(v3)

produce il seguente risultato:

[1] 3+0i 1+0i 1+0i 2+3i
[1] 3+0i 1+0i 1+0i 2+3i
[1] 3+0i 1+0i 1+0i 2+3i

->

o

- >>

Chiamato incarico corretto
c(3,1,TRUE,2+3i) -> v1
c(3,1,TRUE,2+3i) ->> v2 
print(v1)
print(v2)

produce il seguente risultato:

[1] 3+0i 1+0i 1+0i 2+3i
[1] 3+0i 1+0i 1+0i 2+3i

Operatori vari

Questi operatori sono utilizzati per scopi specifici e non per calcoli matematici o logici generali.

Operatore Descrizione Esempio
: Operatore del colon. Crea la serie di numeri in sequenza per un vettore.
v <- 2:8
print(v)

produce il seguente risultato:

[1] 2 3 4 5 6 7 8
%in% Questo operatore viene utilizzato per identificare se un elemento appartiene a un vettore.
v1 <- 8
v2 <- 12
t <- 1:10
print(v1 %in% t) 
print(v2 %in% t)

produce il seguente risultato:

[1] TRUE
[1] FALSE
% *% Questo operatore viene utilizzato per moltiplicare una matrice con la sua trasposizione.
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)

produce il seguente risultato:

[,1] [,2]
[1,]   65   82
[2,]   82  117