SAS: matrices

Las matrices en SAS se utilizan para almacenar y recuperar un rango de valores utilizando un valor de índice. El índice es una ubicación en un área reservada de la memoria.

Sintaxis

En SAS, una matriz se declara utilizando la siguiente sintaxis:

ARRAY ARRAY-NAME(SUBSCRIPT) ($) VARIABLE-LIST ARRAY-VALUES

En la sintaxis anterior:

  • UN MONTÓN DE es la palabra clave SAS para declarar una matriz.

  • ARRAY-NAME es un nombre de matriz que obedece a la misma regla que los nombres de variable.

  • SUSCRIBIR – el número de valores que almacenará la matriz.

  • PS – un parámetro opcional que debe usarse solo si la matriz almacenará valores de caracteres.

  • LISTA DE VARIABLES – una lista opcional de variables que son marcadores de posición para valores de matriz.

  • ARRAY-VALUES – los valores reales almacenados en la matriz. Se pueden declarar aquí o se pueden leer desde un archivo o línea de datos.

Ejemplos de declaración de matriz

Las matrices se pueden declarar de diferentes formas utilizando la sintaxis anterior. A continuación se muestran algunos ejemplos.

# Declare an array of length 5 named AGE with values.
ARRAY AGE[5] (12 18 5 62 44);

# Declare an array of length 5 named COUNTRIES with values starting at index 0.
ARRAY COUNTRIES(0:8) A B C D E F G H I;

# Declare an array of length 5 named QUESTS which contain character values.
ARRAY QUESTS(1:5) $ Q1-Q5;

# Declare an array of required length as per the number of values supplied.
ARRAY ANSWER(*) A1-A100;

Acceder a los valores de matriz

Se puede acceder a los valores almacenados en la matriz usando Imprimir Como se muestra abajo. Una vez declarados usando uno de los métodos anteriores, los datos se proporcionan usando la instrucción DATALINES.

DATA array_example;
INPUT a1 $ a2 $ a3 $ a4 $ a5 $;
ARRAY colours(5) $ a1-a5;
mix = a1||'+'||a2;
DATALINES;
yello pink orange green blue
;
RUN;
PROC PRINT DATA = array_example;
RUN;

Cuando ejecutamos el código anterior, da el siguiente resultado:

array_character_2_result

Usando el operador OF

El operador OF se utiliza al analizar datos en una matriz para realizar cálculos para toda la fila de la matriz. En el siguiente ejemplo, estamos aplicando la suma y el promedio de los valores en cada fila.

DATA array_example_OF;
   INPUT A1 A2 A3 A4;
   ARRAY A(4) A1-A4;
   A_SUM = SUM(OF A(*));
   A_MEAN = MEAN(OF A(*));
   A_MIN = MIN(OF A(*));
   DATALINES;
   21 4 52 11
   96 25 42 6
   ;
   RUN;
   PROC PRINT DATA = array_example_OF;
   RUN;

Cuando ejecutamos el código anterior, da el siguiente resultado:

array_of_result

Usando el operador IN

También se puede acceder al valor de una matriz mediante el operador IN, que comprueba la presencia de un valor en la cadena de la matriz. En el siguiente ejemplo, verificamos la presencia del color «Amarillo» en los datos. Este valor distingue entre mayúsculas y minúsculas.

DATA array_in_example;
   INPUT A1 $ A2 $ A3 $ A4 $;
   ARRAY COLOURS(4) A1-A4;
   IF 'yellow' IN COLOURS THEN available="Yes";ELSE available="No";
   DATALINES;
   Orange pink violet yellow
   ;
   RUN;
   PROC PRINT DATA = array_in_example;
   RUN;

Cuando ejecutamos el código anterior, da el siguiente resultado:

array_in_result

🚫