Le script utilise le dataset `sashelp.class` par défaut. Ce dataset est interne à SAS et toujours disponible.
1 Bloc de code
MACRO
Explication : Ce bloc définit et appelle une macro `%defaults`. Cette macro vérifie l'existence de la variable macro `dset`. Si `dset` n'existe pas, elle la déclare globale et l'initialise avec le chemin `sashelp.class`.
Copié !
%macro defaults ;
%* these defaults may be passed in, or else they default ;
%if %symexist(dset)=0 %then %do;
%global dset;
%let dset=sashelp.class;
%end;
%mend defaults;
%defaults
1
%macro defaults ;
2
%* these defaults may be passed in, or ELSE they default ;
3
%IF %symexist(dset)=0 %THEN %DO;
4
%global dset;
5
%let dset=sashelp.class;
6
%END;
7
%mend defaults;
8
%defaults
2 Bloc de code
DATA STEP
Explication : Ce `DATA _NULL_` pas-à-pas ouvre le dataset spécifié par `&dset` (par défaut `sashelp.class`), récupère le nombre d'observations (`nobs`) via la fonction `attrn` et le stocke dans une variable macro nommée `nobs` à l'aide de `call symput`.
Copié !
data _null_ ;
dsid=open("&dset");
nobs=attrn(dsid,'nobs');
call symput('nobs',strip(put(nobs,8.)));
run;
1
DATA _null_ ;
2
dsid=open("&dset");
3
nobs=attrn(dsid,'nobs');
4
call symput('nobs',strip(put(nobs,8.)));
5
RUN;
3 Bloc de code
DATA STEP Data
Explication : Ce bloc génère un fichier XML. Il récupère d'abord le chemin du répertoire de travail (`work`) et le stocke dans la variable macro `pathname`. Une libname `test` de type `xml` est ensuite assignée à un fichier `temp.xml` dans ce répertoire. Le contenu du dataset `&dset` est copié dans `test.test`, créant ainsi le fichier XML. La libname est ensuite libérée. Enfin, un `DATA _NULL_` lit le fichier `temp.xml` et affiche son contenu directement via `_webout`.
Copié !
%let pathname=%sysfunc(pathname(work)) ;
libname test xml "&pathname/temp.xml" ;
data test.test ;
set &dset ;
run ;
libname test ;
data _null_ ;
infile "&pathname/temp.xml" ;
file _webout ;
input ;
put _infile_ ;
run ;
1
%let pathname=%sysfunc(pathname(work)) ;
2
LIBNAME test xml "&pathname/temp.xml" ;
3
DATA test.test ;
4
SET &dset ;
5
RUN ;
6
LIBNAME test ;
7
DATA _null_ ;
8
INFILE"&pathname/temp.xml" ;
9
file _webout ;
10
INPUT ;
11
put _infile_ ;
12
RUN ;
4 Bloc de code
MACRO
Explication : Ces lignes définissent les délimiteurs pour un processus stocké SAS. `%STPBEGIN` et `%STPEND` encadrent le code qui sera exécuté dans le cadre du processus stocké. La ligne `*';*\"*/;run;` est une syntaxe standard pour terminer potentiellement des blocs de code ou des instructions en attente, souvent utilisée pour assurer une exécution propre dans le contexte des processus stockés.
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.