Les exemples fournis utilisent des tableaux EEL déclarés et initialisés en interne, ou des données générées via des `datalines` dans des étapes DATA ou DS2. Cela garantit l'autonomie et l'exécutabilité des exemples sans dépendance à des sources de données externes.
1 Bloc de code
DATA STEP Data
Explication : Cet exemple simple déclare un tableau dynamique EEL 'myArray' de type chaîne avec trois éléments. La fonction GET est ensuite utilisée avec l'indice 2 pour récupérer le deuxième élément ('Banana'), qui est ensuite affiché dans le log SAS.
Copié !
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 Bloc de code
DATA STEP Data
Explication : Cet exemple illustre une utilisation courante de la fonction GET dans une boucle. Il montre comment itérer sur un tableau dynamique en utilisant la fonction DIM pour déterminer sa taille, et comment GET permet d'accéder à chaque élément successivement. Un redimensionnement du tableau est inclus pour démontrer sa flexibilité.
Copié !
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 Bloc de code
DATA STEP Data
Explication : Cet exemple avancé illustre comment la fonction GET peut être utilisée pour simuler l'accès à des éléments dans un tableau bidimensionnel stocké sous forme de tableau unidimensionnel. Un calcul d'indice est effectué pour mapper les coordonnées 2D à un indice 1D, et des vérifications de limites sont incluses pour une robustesse accrue. La deuxième partie de l'exemple montre comment récupérer et afficher une ligne entière de ce tableau simulé.
Copié !
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) */
Explication : Cet exemple illustre l'utilisation de la fonction GET dans un environnement SAS Viya avec CAS (Cloud Analytic Services). Un bloc DS2 est employé pour traiter une table CAS chargée en mémoire. À l'intérieur du programme DS2, un tableau dynamique EEL est déclaré et alimenté avec des données provenant des colonnes de la table d'entrée. La fonction GET est ensuite appliquée pour extraire un élément spécifique du tableau EEL, et le résultat est enregistré dans une nouvelle table CAS. Le flag 'cas' est défini à 1 pour indiquer l'utilisation de fonctionnalités CAS.
Copié !
/* 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;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.