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.
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.
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;
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:
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:
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:
🚫