SAS - Operatori

Un operatore in SAS è un simbolo utilizzato in un'espressione matematica, logica o di confronto. Questi simboli sono incorporati nel linguaggio SAS e molti operatori possono essere combinati in una singola espressione per fornire un output finale.

Di seguito è riportato un elenco di categorie di operatori SAS.

  • Operatori aritmetici
  • Operatori logici
  • Operatori di confronto
  • Operatori minimo / massimo
  • Operatore di concatenazione

Vedremo ciascuno di uno per uno. Gli operatori vengono sempre utilizzati con variabili che fanno parte dei dati analizzati dal programma SAS.

Operatori aritmetici

La tabella seguente descrive i dettagli degli operatori aritmetici. Supponiamo due variabili di datiV1 e V2con valori 8 e 4 rispettivamente.

Operatore Descrizione Esempio
+ Aggiunta V1 + V2 = 12
- Sottrazione V1-V2 = 4
* Moltiplicazione V1 * V2 = 32
/ Divisione V1 / V2 = 2
** Esponenziazione V1 ** V2 = 4096

Esempio

DATA MYDATA1;
input @1 COL1 4.2	@7 COL2 3.1; 
Add_result = COL1+COL2;
Sub_result = COL1-COL2;
Mult_result = COL1*COL2;
Div_result = COL1/COL2;
Expo_result = COL1**COL2;
datalines;
11.21 5.3
3.11  11
;
PROC PRINT DATA = MYDATA1;
RUN;

Eseguendo il codice precedente, otteniamo il seguente output.

Operatori logici

La tabella seguente descrive i dettagli degli operatori logici. Questi operatori valutano il valore di Verità di un'espressione. Quindi il risultato degli operatori logici è sempre 1 o 0. Supponiamo che due variabili di datiV1 e V2con valori 8 e 4 rispettivamente.

Operatore Descrizione Esempio
& L'operatore AND. Se entrambi i valori dei dati restituiscono true, il risultato è 1 altrimenti è 0. (V1> 2 & V2> 3) restituisce 0.
| L'operatore OR. Se uno qualsiasi dei valori dei dati restituisce true, il risultato è 1, altrimenti è 0. (V1> 9 e V2> 3) è 1.
~ L'operatore NOT. Il risultato dell'operatore NOT sotto forma di un'espressione il cui valore è FALSE o un valore mancante è 1 altrimenti è 0. NOT (V1> 3) è 1.

Esempio

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1; 
and_=(COL1 > 10 & COL2 > 5 );
or_ = (COL1 > 12 | COL2 > 15 );
not_ = ~( COL2 > 7 );
datalines;
11.21 5.3
3.11  11.4
;
PROC PRINT DATA = MYDATA1;
RUN;

Eseguendo il codice precedente, otteniamo il seguente output.

Operatori di confronto

La tabella seguente descrive i dettagli degli operatori di confronto. Questi operatori confrontano i valori delle variabili e il risultato è un valore di verità presentato da 1 per TRUE e 0 per False. Supponiamo due variabili di datiV1 e V2con valori 8 e 4 rispettivamente.

Operatore Descrizione Esempio
= L'operatore EQUAL. Se entrambi i valori dei dati sono uguali, il risultato è 1 altrimenti è 0. (V1 = 8) restituisce 1.
^ = L'operatore NON UGUALE. Se entrambi i valori dei dati non sono uguali, il risultato è 1 altrimenti è 0. (V1 ^ = V2) restituisce 1.
< L'operatore MENO DI. (V2 <V2) restituisce 1.
<= L'operatore MENO DI o UGUALE A. (V2 <= 4) restituisce 1.
> IL MIGLIORE DELL'operatore. (V2> V1) restituisce 1.
> = L'operatore MAGGIORE DI O UGUALE A. (V2> = V1) restituisce 0.
IN L'operatore IN. Se il valore della variabile è uguale a uno qualsiasi dei valori in un dato elenco di valori, restituisce 1 altrimenti restituisce 0. V1 in (5,7,9,8) restituisce 1.

Esempio

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1; 
EQ_ = (COL1 = 11.21);
NEQ_= (COL1 ^= 11.21);
GT_ = (COL2 => 8);
LT_ = (COL2 <= 12);
IN_ = COL2 in( 6.2,5.3,12 );
datalines;
11.21 5.3
3.11  11.4
;
PROC PRINT DATA = MYDATA1;
RUN;

Eseguendo il codice precedente, otteniamo il seguente output.

Operatori minimo / massimo

La tabella seguente descrive i dettagli degli operatori Minimo / Massimo. Questi operatori confrontano i valori delle variabili su una riga e viene restituito il valore minimo o massimo dall'elenco dei valori nelle righe.

Operatore Descrizione Esempio
MIN L'operatore MIN. Restituisce il valore minimo dall'elenco dei valori nella riga. MIN (45.2,11.6,15.41) restituisce 11.6
MAX L'operatore MAX. Restituisce il valore massimo dall'elenco dei valori nella riga. MAX (45.2,11.6,15.41) restituisce 45.2

Esempio

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1 @12 COL3 6.3; 
min_ = MIN(COL1 , COL2 , COL3);
max_ = MAX( COL1, COl2 , COL3);
datalines;
11.21 5.3 29.012
3.11  11.4 18.512
;
PROC PRINT DATA = MYDATA1;
RUN;

Eseguendo il codice precedente, otteniamo il seguente output.

Operatore di concatenazione

La tabella seguente descrive i dettagli dell'operatore di concatenazione. Questo operatore concatena due o più valori di stringa. Viene restituito un singolo valore di carattere.

Operatore Descrizione Esempio
|| L'operatore concatenato. Restituisce la concatenazione di due o più valori. "Ciao" || " World 'dà Hello World

Esempio

DATA MYDATA1;
input  COL1 $	COL2 $  COL3 $; 
concat_ = (COL1 || COL2 || COL3);
datalines;
Tutorial s point
simple easy learning
;
PROC PRINT DATA = MYDATA1;
RUN;

Eseguendo il codice precedente, otteniamo il seguente output.

Precedenza degli operatori

La precedenza degli operatori indica l'ordine di valutazione dei molteplici operatori presenti nell'espressione complessa. La tabella seguente descrive l'ordine di precedenza con in un gruppo di operatori.

Gruppo Ordine Simboli
Gruppo I Da destra a sinistra ** + - NON MIN MAX
Gruppo II Da sinistra a destra * /
Gruppo III Da sinistra a destra + -
Gruppo IV Da sinistra a destra ||
Gruppo V Da sinistra a destra <<= => =>