SAS - Operadores

Un operador en SAS es un símbolo que se utiliza en una expresión matemática, lógica o de comparación. Estos símbolos están integrados en el lenguaje SAS y muchos operadores se pueden combinar en una sola expresión para dar un resultado final.

A continuación se muestra una lista de la categoría de operadores SAS.

  • Operadores aritméticos
  • Operadores logicos
  • Operadores de comparación
  • Operadores mínimos / máximos
  • Operador de concatenación

Veremos cada uno de los uno por uno. Los operadores siempre se utilizan con variables que forman parte de los datos que está siendo analizado por el programa SAS.

Operadores aritméticos

La siguiente tabla describe los detalles de los operadores aritméticos. Supongamos dos variables de datosV1 y V2con valores 8 y 4 respectivamente.

Operador Descripción Ejemplo
+ Adición V1 + V2 = 12
- Sustracción V1-V2 = 4
* Multiplicación V1 * V2 = 32
/ División V1 / V2 = 2
** Exponenciación V1 ** V2 = 4096

Ejemplo

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;

Al ejecutar el código anterior, obtenemos el siguiente resultado.

Operadores logicos

La siguiente tabla describe los detalles de los operadores lógicos. Estos operadores evalúan el valor de Verdad de una expresión. Entonces, el resultado de los operadores lógicos es siempre un 1 o un 0. Supongamos dos variables de datosV1 y V2con valores 8 y 4 respectivamente.

Operador Descripción Ejemplo
Y El operador AND. Si ambos valores de datos se evalúan como verdaderos, el resultado es 1; de lo contrario, es 0. (V1> 2 y V2> 3) da 0.
| El operador OR. Si alguno de los valores de los datos se evalúa como verdadero, el resultado es 1; de lo contrario, es 0. (V1> 9 y V2> 3) es 1.
~ El operador NOT. El resultado del operador NOT en forma de expresión cuyo valor es FALSO o un valor faltante es 1; de lo contrario, es 0. NOT (V1> 3) es 1.

Ejemplo

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;

Al ejecutar el código anterior, obtenemos el siguiente resultado.

Operadores de comparación

La siguiente tabla describe los detalles de los operadores de comparación. Estos operadores comparan los valores de las variables y el resultado es un valor de verdad presentado por 1 para VERDADERO y 0 para Falso. Supongamos dos variables de datosV1 y V2con valores 8 y 4 respectivamente.

Operador Descripción Ejemplo
= El operador EQUAL. Si ambos valores de datos son iguales, el resultado es 1; de lo contrario, es 0. (V1 = 8) da 1.
^ = El operador NO IGUAL. Si ambos valores de datos son desiguales, el resultado es 1; de lo contrario, es 0. (V1 ^ = V2) da 1.
< El MENOS QUE operador. (V2 <V2) da 1.
<= El operador MENOR o IGUAL A. (V2 <= 4) da 1.
> El MAYOR que el operador. (V2> V1) da 1.
> = El operador MAYOR o IGUAL A. (V2> = V1) da 0.
EN El operador IN. Si el valor de la variable es igual a cualquiera de los valores en una lista de valores dada, entonces devuelve 1; de lo contrario, devuelve 0. V1 en (5,7,9,8) da 1.

Ejemplo

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;

Al ejecutar el código anterior, obtenemos el siguiente resultado.

Operadores mínimos / máximos

La siguiente tabla describe los detalles de los operadores Mínimo / Máximo. Estos operadores comparan los valores de las variables en una fila y se devuelve el valor mínimo o máximo de la lista de valores en las filas.

Operador Descripción Ejemplo
MIN El operador MIN. Devuelve el valor mínimo de la lista de valores en la fila. MIN (45.2,11.6,15.41) da 11.6
MAX El operador MAX. Devuelve el valor máximo de la lista de valores en la fila. MAX (45.2,11.6,15.41) da 45.2

Ejemplo

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;

Al ejecutar el código anterior, obtenemos el siguiente resultado.

Operador de concatenación

La siguiente tabla describe los detalles del operador de concatenación. Este operador concatena dos o más valores de cadena. Se devuelve un valor de un solo carácter.

Operador Descripción Ejemplo
|| El operador de concatenar. Devuelve la concatenación de dos o más valores. 'Hola' || ' World 'da Hello World

Ejemplo

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

Al ejecutar el código anterior, obtenemos el siguiente resultado.

Precedencia de operadores

La precedencia de los operadores indica el orden de evaluación de los múltiples operadores presentes en una expresión compleja. La siguiente tabla describe el orden de precedencia con en un grupo de operadores.

Grupo Orden Simbolos
Grupo I De derecha a izquierda ** + - NO MIN MAX
Grupo II De izquierda a derecha * /
Grupo III De izquierda a derecha + -
Grupo IV De izquierda a derecha ||
Grupo V De izquierda a derecha <<= => =>