Los ejemplos proporcionados utilizan matrices EEL declaradas e inicializadas internamente, o datos generados a través de `datalines` en pasos DATA o DS2. Esto garantiza la autonomía y la capacidad de ejecución de los ejemplos sin dependencia de fuentes de datos externas.
1 Bloque de código
DATA STEP Data
Explicación : Este ejemplo simple declara una matriz dinámica EEL 'myArray' de tipo cadena con tres elementos. La función GET se utiliza luego con el índice 2 para recuperar el segundo elemento ('Banana'), que luego se muestra en el log de SAS.
¡Copiado!
data _null_;
/* Déclaration d'un tableau dynamique EEL */
length myArray{3} $20;
myArray[1] = "Apple";
myArray[2] = "Banana";
myArray[3] = "Cherry";
/* Utilisation de la fonction GET pour récupérer un élément */
myElement = GET(myArray, 2);
put "L'élément à l'indice 2 est : " myElement; /* Attendu : Banana */
run;
1
DATA _null_;
2
/* Déclaration d'un tableau dynamique EEL */
3
LENGTH myArray{3} $20;
4
myArray[1] = "Apple";
5
myArray[2] = "Banana";
6
myArray[3] = "Cherry";
7
8
/* Utilisation de la fonction GET pour récupérer un élément */
9
myElement = GET(myArray, 2);
10
put "L'élément à l'indice 2 est : " myElement; /* Attendu : Banana */
11
RUN;
2 Bloque de código
DATA STEP Data
Explicación : Este ejemplo ilustra un uso común de la función GET en un bucle. Muestra cómo iterar sobre una matriz dinámica usando la función DIM para determinar su tamaño, y cómo GET permite acceder a cada elemento sucesivamente. Se incluye un redimensionamiento de la matriz para demostrar su flexibilidad.
¡Copiado!
data _null_;
/* Déclaration et initialisation d'un tableau dynamique EEL */
length salesData{*} 8;
salesData[1] = 100;
salesData[2] = 150;
salesData[3] = 200;
salesData[4] = 120;
/* Redimensionner le tableau pour ajouter un élément */
DIM(salesData) = 5;
salesData[5] = 180;
/* Itérer et afficher tous les éléments du tableau */
do i = 1 to DIM(salesData);
currentSale = GET(salesData, i);
put "Vente pour l'indice " i " : " currentSale;
end;
run;
1
DATA _null_;
2
/* Déclaration et initialisation d'un tableau dynamique EEL */
3
LENGTH salesData{*} 8;
4
salesData[1] = 100;
5
salesData[2] = 150;
6
salesData[3] = 200;
7
salesData[4] = 120;
8
9
/* Redimensionner le tableau pour ajouter un élément */
10
DIM(salesData) = 5;
11
salesData[5] = 180;
12
13
/* Itérer et afficher tous les éléments du tableau */
14
DO i = 1 to DIM(salesData);
15
currentSale = GET(salesData, i);
16
put "Vente pour l'indice " i " : " currentSale;
17
END;
18
RUN;
3 Bloque de código
DATA STEP Data
Explicación : Este ejemplo avanzado ilustra cómo la función GET se puede usar para simular el acceso a elementos en una matriz bidimensional almacenada como una matriz unidimensional. Se realiza un cálculo de índice para mapear las coordenadas 2D a un índice 1D, y se incluyen comprobaciones de límites para una mayor robustez. La segunda parte del ejemplo muestra cómo recuperar y mostrar una fila completa de esta matriz simulada.
¡Copiado!
data _null_;
/* Déclaration d'un tableau dynamique EEL pour simuler une matrice 2x3 */
/* Les éléments sont stockés séquentiellement: (1,1) (1,2) (1,3) (2,1) (2,2) (2,3) */
length matrixData{6} 8;
matrixData[1] = 11; matrixData[2] = 12; matrixData[3] = 13;
matrixData[4] = 21; matrixData[5] = 22; matrixData[6] = 23;
numRows = 2;
numCols = 3;
/* Récupérer un élément spécifique (par exemple, élément à la ligne 2, colonne 1) */
targetRow = 2;
targetCol = 1;
calculatedIndex = ((targetRow - 1) * numCols) + targetCol;
if (calculatedIndex >= 1 and calculatedIndex <= DIM(matrixData)) then do;
element = GET(matrixData, calculatedIndex);
put "Élément à la ligne " targetRow ", colonne " targetCol " : " element; /* Attendu : 21 */
end;
else do;
put "Index hors limites pour la matrice.";
end;
/* Récupérer et afficher tous les éléments de la deuxième ligne */
put ' ';
put 'Éléments de la deuxième ligne :';
do j = 1 to numCols;
calculatedIndex_row2 = ((2 - 1) * numCols) + j;
element_row2 = GET(matrixData, calculatedIndex_row2);
put " Élément (2," j ") : " element_row2;
end;
run;
1
DATA _null_;
2
/* Déclaration d'un tableau dynamique EEL pour simuler une matrice 2x3 */
3
/* Les éléments sont stockés séquentiellement: (1,1) (1,2) (1,3) (2,1) (2,2) (2,3) */
Explicación : Este ejemplo ilustra el uso de la función GET en un entorno SAS Viya con CAS (Cloud Analytic Services). Se emplea un bloque DS2 para procesar una tabla CAS cargada en memoria. Dentro del programa DS2, se declara una matriz dinámica EEL y se alimenta con datos provenientes de las columnas de la tabla de entrada. La función GET se aplica luego para extraer un elemento específico de la matriz EEL, y el resultado se registra en una nueva tabla CAS. El flag 'cas' se establece en 1 para indicar el uso de funcionalidades CAS.
¡Copiado!
/* Exemple 4 : Intégration Viya/CAS avec DS2 */
/* Création d'une table CAS en mémoire pour démonstration */
data casuser.input_data;
input id $ item1 $ item2 $ item3 $;
datalines;
101 Apple Banana Cherry
102 Orange Grape Kiwi
103 Mango Peach
;
run;
proc cas;
session casauto;
/* Charger la table dans CAS */
load data=casuser.input_data out=casuser.input_data;
/* Utiliser un bloc DS2 pour créer un tableau EEL et utiliser la fonction GET */
ds2;
data casuser.processed_items {overwrite=true};
method run();
set casuser.input_data;
declare character(20) fruitArray[3] _temporary_; /* Déclaration d'un tableau EEL temporaire */
declare character(20) secondFruit;
/* Peupler le tableau EEL avec les valeurs des colonnes */
fruitArray[1] = item1;
fruitArray[2] = item2;
fruitArray[3] = item3;
/* Utiliser la fonction GET pour récupérer le deuxième fruit */
if DIM(fruitArray) >= 2 then do;
secondFruit = GET(fruitArray, 2);
end;
else do;
secondFruit = 'N/A';
end;
output;
end;
enddata;
quit;
/* Afficher la table résultante */
print data=casuser.processed_items;
quit;
1
/* Exemple 4 : Intégration Viya/CAS avec DS2 */
2
/* Création d'une table CAS en mémoire pour démonstration */
/* Utiliser un bloc DS2 pour créer un tableau EEL et utiliser la fonction GET */
19
ds2;
20
DATA casuser.processed_items {overwrite=true};
21
method RUN();
22
SET casuser.input_data;
23
declare character(20) fruitArray[3] _temporary_; /* Déclaration d'un tableau EEL temporaire */
24
declare character(20) secondFruit;
25
26
/* Peupler le tableau EEL avec les valeurs des colonnes */
27
fruitArray[1] = item1;
28
fruitArray[2] = item2;
29
fruitArray[3] = item3;
30
31
/* Utiliser la fonction GET pour récupérer le deuxième fruit */
32
IF DIM(fruitArray) >= 2THENDO;
33
secondFruit = GET(fruitArray, 2);
34
END;
35
ELSEDO;
36
secondFruit = 'N/A';
37
END;
38
39
OUTPUT;
40
END;
41
enddata;
42
QUIT;
43
44
/* Afficher la table résultante */
45
PRINTDATA=casuser.processed_items;
46
QUIT;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.