Le programme commence par configurer une bibliothèque de macros autocallable et active le mode débogage détaillé pour SCAPROC. Ensuite, il démarre l'enregistrement SCAPROC. Deux DATA steps initiaux créent des copies des données 'sashelp.class'. Ces copies sont ensuite agrégées par 'sex' en utilisant PROC SUMMARY, créant des datasets intermédiaires (x2, y2). Ces datasets agrégés sont triés par 'sex' avec PROC SORT (x3, y3). Un DATA step de fusion combine ensuite 'x3' et 'y3' en 'z'. Une PROC PRINT est utilisée pour afficher le contenu du dataset 'z'. Enfin, une PROC SQL effectue une jointure gauche entre les datasets 'x' et 'y' originaux pour créer 'sql_table'. L'enregistrement SCAPROC est arrêté et la macro %scaproc_analyse est appelée pour générer la description GraphViz du flux de traitement.
Analyse des données
Type : SASHELP
Les données source proviennent exclusivement du jeu de données interne 'SASHELP.CLASS', qui est une table d'exemple standard fournie avec SAS. Aucune donnée externe ou générée en ligne ('datalines') n'est utilisée.
1 Bloc de code
Configuration Système et Macros
Explication : Ce bloc configure le système SAS pour l'utilisation de macros spécifiques. Il définit 'mymacros' comme une bibliothèque autocallable pointant vers le répertoire courant, ajoute cette bibliothèque aux options SASAUTOS, et initialise la variable macro '_eandebug' pour activer le traçage détaillé de SCAPROC. Enfin, la macro '%eanbegin' démarre l'enregistrement du flux d'exécution du programme sous le nom 'Sample 1'.
Copié !
filename mymacros '.';
options append=sasautos=(mymacros);
%* set macro variable to turn on SCAPROC and set verbose logging ;
%let _eandebug=scaproc,verbose;
%* Start recording SCAPROC data ;
%eanbegin(Sample 1)
1
filename mymacros '.';
2
options append=sasautos=(mymacros);
3
4
%* SET macro variable to turn on SCAPROC and SET verbose logging ;
5
%let _eandebug=scaproc,verbose;
6
7
%* Start recording SCAPROC DATA ;
8
%eanbegin(Sample 1)
2 Bloc de code
DATA STEP Data
Explication : Un DATA step qui crée un nouveau jeu de données nommé 'x'. Il lit toutes les observations et variables du jeu de données 'sashelp.class' et les copie dans 'x'.
Copié !
data x ;
set sashelp.class ;
run ;
1
DATA x ;
2
SET sashelp.class ;
3
RUN ;
3 Bloc de code
DATA STEP Data
Explication : Un second DATA step qui crée un nouveau jeu de données nommé 'y'. Similaire au précédent, il copie également toutes les observations et variables de 'sashelp.class' dans 'y'.
Copié !
data y ;
set sashelp.class ;
run ;
1
DATA y ;
2
SET sashelp.class ;
3
RUN ;
4 Bloc de code
PROC SUMMARY Data
Explication : Cette procédure calcule des statistiques récapitulatives. Pour le jeu de données 'x', elle regroupe les observations par la variable 'sex' et calcule la moyenne de la variable 'height'. Les résultats sont stockés dans le nouveau jeu de données 'x2'.
Copié !
proc summary data=x ;
class sex ;
var height ;
output out=x2 mean= ;
run ;
1
PROC SUMMARYDATA=x ;
2
class sex ;
3
var height ;
4
OUTPUT out=x2 mean= ;
5
RUN ;
5 Bloc de code
PROC SUMMARY Data
Explication : Similaire au bloc précédent, cette procédure calcule les statistiques récapitulatives pour le jeu de données 'y'. Elle regroupe par 'sex', calcule la moyenne de 'height', et enregistre les résultats dans 'y2'.
Copié !
proc summary data=y ;
class sex ;
var height ;
output out=y2 mean= ;
run ;
1
PROC SUMMARYDATA=y ;
2
class sex ;
3
var height ;
4
OUTPUT out=y2 mean= ;
5
RUN ;
6 Bloc de code
PROC SORT Data
Explication : La procédure PROC SORT est utilisée pour trier le jeu de données 'x2' selon la variable 'sex'. Le jeu de données trié est ensuite enregistré sous le nom 'x3'. Le tri est une étape préparatoire essentielle pour les opérations de fusion ou de jointure.
Copié !
proc sort data=x2 out=x3 ;
by sex ;
run ;
1
PROC SORTDATA=x2 out=x3 ;
2
BY sex ;
3
RUN ;
7 Bloc de code
PROC SORT Data
Explication : De manière identique au bloc précédent, cette PROC SORT trie le jeu de données 'y2' par la variable 'sex' et stocke le résultat dans 'y3'. Ceci prépare 'y3' pour une fusion avec 'x3'.
Copié !
proc sort data=y2 out=y3 ;
by sex ;
run ;
1
PROC SORTDATA=y2 out=y3 ;
2
BY sex ;
3
RUN ;
8 Bloc de code
DATA STEP Data
Explication : Ce DATA step effectue une fusion (merge) des jeux de données triés 'x3' et 'y3'. La fusion est réalisée sur la variable 'sex', ce qui combine les observations ayant la même valeur de 'sex' des deux jeux de données dans le nouveau jeu de données 'z'.
Copié !
data z ;
merge x3 y3 ;
by sex ;
run ;
1
DATA z ;
2
MERGE x3 y3 ;
3
BY sex ;
4
RUN ;
9 Bloc de code
PROC PRINT
Explication : La procédure PROC PRINT est utilisée pour afficher le contenu du dernier jeu de données créé dans la session SAS. Dans ce cas, il s'agit du jeu de données 'z' résultant de l'opération de fusion.
Copié !
proc print ;
run ;
1
PROC PRINT ;
2
RUN ;
10 Bloc de code
PROC SQL Data
Explication : Ce bloc utilise PROC SQL pour effectuer une jointure. Il crée une nouvelle table nommée 'sql_table' en combinant les jeux de données 'x' et 'y' via une jointure externe gauche (LEFT JOIN) sur la variable 'sex'. Cela inclut toutes les observations de 'x' et les observations correspondantes de 'y'.
Copié !
proc sql ;
create table sql_table as
select *
from x
left join
y
on x.sex=y.sex ;
quit ;
1
PROC SQL ;
2
create TABLE sql_table as
3
select *
4
from x
5
left join
6
y
7
on x.sex=y.sex ;
8
QUIT ;
11 Bloc de code
Analyse SCAPROC
Explication : Ce bloc finalise l'enregistrement des données SCAPROC avec la macro '%eanend'. Ensuite, la macro '%scaproc_analyse' est appelée pour traiter les données SCAPROC enregistrées et générer une sortie au format GraphViz DOT, qui peut être utilisée pour créer une représentation graphique (organigramme) du flux d'exécution du programme SAS.
Copié !
%* Finish recording SCAPROC data and write it out ;
%eanend
%* Generate the graphViz dot language to be used to make diagram ;
%scaproc_analyse
1
%* Finish recording SCAPROC DATA and write it out ;
2
%eanend
3
4
5
%* Generate the graphViz dot language to be used to make diagram ;
6
%scaproc_analyse
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.