Les exemples utilisent des données générées (datalines) pour les démonstrations CAS, mais d'autres exemples dépendent de fichiers externes non créés dans le code (marqués external_data_not_found: 1).
1 Bloc de code
DATA STEP
Explication : Cet exemple montre comment lire des données brutes à partir d'un fichier externe en utilisant les instructions INFILE et INPUT. INFILE est requise car les données source proviennent d'un fichier texte externe.
Copié !
data weight;
infile <fileref> or <path-to-file;
input PatientID $ Week1 Week8 Week16;
loss=Week1-Week16;
run;
1
DATA weight;
2
INFILE or
3
INPUT PatientID $ Week1 Week8 Week16;
4
loss=Week1-Week16;
5
RUN;
2 Bloc de code
DATA STEP
Explication : Spécifie le fichier contenant les données d'entrée directement en utilisant son nom physique entre guillemets.
Explication : Identifie le fichier vers lequel l'instruction PUT écrit les données. Cet exemple montre l'écriture de conditions basées sur une variable 'loss'.
Copié !
file 'output-file';
data status;
if loss ge 5 and loss le 9 then
put idno loss 'AWARD STATUS=3';
else if loss ge 10 and loss le 14 then
put idno loss 'AWARD STATUS=2';
else if loss ge 15 then
put idno loss 'AWARD STATUS=1';
run;
1
file 'output-file';
2
DATASTATUS;
3
IF loss ge 5 and loss le 9THEN
4
put idno loss 'AWARD STATUS=3';
5
ELSEIF loss ge 10 and loss le 14THEN
6
put idno loss 'AWARD STATUS=2';
7
ELSEIF loss ge 15THEN
8
put idno loss 'AWARD STATUS=1';
9
RUN;
4 Bloc de code
%INCLUDE statement
Explication : Permet d'incorporer des instructions ou des données brutes d'un autre fichier dans votre job SAS et de les exécuter.
Copié !
%include 'source-file';
1
%include 'source-file';
5 Bloc de code
DATA STEP / FILENAME statement
Explication : Assigne un fileref 'mydata' à un fichier d'entrée, puis utilise ce fileref dans l'instruction INFILE pour lire les données.
Explication : Assigne un fileref 'myreport' à un fichier de sortie et un fileref 'mydata' à un fichier d'entrée, puis lit les données pour créer un nouveau jeu de données.
Explication : Assigne un fileref 'mypgm' à un fichier contenant des instructions de programme.
Copié !
filename mypgm 'source-file';
1
filename mypgm 'source-file';
10 Bloc de code
FILENAME statement
Explication : Assigne un fileref 'myprinter' à un périphérique de sortie spécifié par son type et les options d'hôte.
Copié !
filename myprinter <device-type>
<host-options>;
1
filename myprinter
2
;
3
11 Bloc de code
DATA STEP
Explication : Utilise le fileref 'mydata' (préalablement assigné) dans l'instruction INFILE pour lire les données.
Copié !
data weight;
infile mydata;
input idno $ week1 week16;
loss=week1-week16;
1
DATA weight;
2
INFILE mydata;
3
INPUT idno $ week1 week16;
4
loss=week1-week16;
12 Bloc de code
DATA STEP
Explication : Utilise le fileref 'myreport' (préalablement assigné) dans l'instruction FILE pour écrire des données conditionnellement.
Copié !
file myreport;
if loss ge 5 and loss le 9 then
put idno loss 'AWARD STATUS=3';
else if loss ge 10 and loss le 14 then
put idno loss 'AWARD STATUS=2';
else if loss ge 15 then
put idno loss 'AWARD STATUS=1';
run;
1
file myreport;
2
IF loss ge 5 and loss le 9THEN
3
put idno loss 'AWARD STATUS=3';
4
ELSEIF loss ge 10 and loss le 14THEN
5
put idno loss 'AWARD STATUS=2';
6
ELSEIF loss ge 15THEN
7
put idno loss 'AWARD STATUS=1';
8
RUN;
13 Bloc de code
%INCLUDE statement
Explication : Inclut le contenu du fichier référencé par 'mypgm' dans le job SAS.
Copié !
%include mypgm;
1
%include mypgm;
14 Bloc de code
FILENAME statement
Explication : Assigne un fileref 'mydir' à un répertoire ou un PDS (Partitioned Data Set), permettant d'accéder efficacement à plusieurs fichiers.
Copié !
filename mydir 'directory-or-PDS-name';
1
filename mydir 'directory-or-PDS-name';
15 Bloc de code
DATA STEP
Explication : Lit les données du fichier 'qrt1.data' situé dans l'emplacement agrégé référencé par 'mydir'.
Explication : Écrit des données conditionnellement vers le fichier 'awards' situé dans l'emplacement agrégé référencé par 'mydir'.
Copié !
file mydir(awards);
if loss ge 5 then put idno loss
'AWARD STATUS=3';
else if loss ge 10
then put idno loss 'AWARD STATUS=2';
else if loss ge 15
then put idno loss 'AWARD STATUS=1';
run;
1
file mydir(awards);
2
IF loss ge 5THEN put idno loss
3
'AWARD STATUS=3';
4
ELSEIF loss ge 10
5
THEN put idno loss 'AWARD STATUS=2';
6
ELSEIF loss ge 15
7
THEN put idno loss 'AWARD STATUS=1';
8
RUN;
17 Bloc de code
%INCLUDE statement
Explication : Inclut le contenu du fichier 'whole.program' situé dans l'emplacement agrégé référencé par 'mydir'.
Copié !
%include mydir(whole.program);
1
%include mydir(whole.program);
18 Bloc de code
DATA STEP
Explication : Lit les données binaires par colonne à partir d'un fichier spécifié, en utilisant les options INFILE RECFM=F et LRECL=160.
Copié !
data out;
infile file-specification or path-to-file recfm=f lrecl=160;
input var1;
run;
1
DATA out;
2
INFILE file-specification or path-to-file recfm=f lrecl=160;
3
INPUT var1;
4
RUN;
19 Bloc de code
DATA STEP / PROC CASUTIL Data
Explication : Cet exemple prépare d'abord des données dans une bibliothèque de travail SAS (WORK) puis utilise PROC CASUTIL pour charger ces données sur le serveur CAS. Cette méthode standard ne permet pas l'application directe de l'optimisation DVR lors du chargement.
Copié !
/* Préparation des données dans WORK */
data maTableWork;
input PatientID $ Week1 Week8 Week16;
datalines;
P1 100 95 90
P2 80 78 75
P3 120 115 110
;
run;
/* Méthode standard - ne permet pas l'optimisation DVR directe */
proc casutil;
load data=maTableWork casout="maTableCAS";
quit;
1
/* Préparation des données dans WORK */
2
DATA maTableWork;
3
INPUT PatientID $ Week1 Week8 Week16;
4
DATALINES;
5
P1 1009590
6
P2 807875
7
P3 120115110
8
;
9
RUN;
10
11
/* Méthode standard - ne permet pas l'optimisation DVR directe */
12
PROC CASUTIL;
13
load DATA=maTableWork casout="maTableCAS";
14
QUIT;
20 Bloc de code
DATA STEP / PROC CAS Data
Explication : Cet exemple crée d'abord une table SAS temporaire ('somedata') avec des valeurs répétées. Il utilise ensuite l'instruction UPLOAD de PROC CAS pour charger cette table sur le serveur CAS en appliquant directement le format DVR et des options de conversion VARCHAR. Ceci optimise l'utilisation de la mémoire en une seule étape. Une étape de nettoyage préalable et de vérification est incluse.
Copié !
/* Création d'une table temporaire SAS pour l'exemple */
data somedata;
length id $8 name $20 value 8;
do id = 1 to 10;
name = cats('Item', id);
value = mod(id, 3) * 100;
output;
end;
/* Ajout de valeurs répétées pour montrer l'efficacité de DVR */
do id = 11 to 20;
name = 'Repeated';
value = 50;
output;
end;
run;
proc cas;
/* Nettoyage préalable si nécessaire */
action table.droptable / name="somedata" caslib="casuser" quiet=true;
/* Chargement optimisé */
upload /
/* Récupération dynamique du chemin physique de la table SAS */
path="%sysfunc(pathname(work))/somedata.sas7bdat"
/* Configuration de la table de sortie CAS */
casout={
caslib="casuser"
name="somedata"
promote=true, /* Rendre la table globale */
memoryformat="DVR", /* Activation de la compression DVR */
replication=0 /* Ajuster la réplication selon les besoins */
}
/* Options d'importation supplémentaires */
importoptions={
filetype="BASESAS",
varcharConversion=17 /* Convertit les CHAR > 16 octets en VARCHAR */
}
;
quit;
/* Vérification du format de la table en CAS (optionnel) */
proc casutil;
list tables caslib="casuser" level="memory";
quit;
1
/* Création d'une table temporaire SAS pour l'exemple */
2
DATA somedata;
3
LENGTH id $8 name $20 value 8;
4
DO id = 1 to 10;
5
name = cats('Item', id);
6
value = mod(id, 3) * 100;
7
OUTPUT;
8
END;
9
/* Ajout de valeurs répétées pour montrer l'efficacité de DVR */
/* Récupération dynamique du chemin physique de la table SAS */
24
path="%sysfunc(pathname(work))/somedata.sas7bdat"
25
26
/* Configuration de la table de sortie CAS */
27
casout={
28
caslib="casuser"
29
name="somedata"
30
promote=true, /* Rendre la table globale */
31
memoryformat="DVR", /* Activation de la compression DVR */
32
replication=0 /* Ajuster la réplication selon les besoins */
33
}
34
35
/* Options d'importation supplémentaires */
36
importoptions={
37
filetype="BASESAS",
38
varcharConversion=17/* Convertit les CHAR > 16 octets en VARCHAR */
39
}
40
;
41
QUIT;
42
43
/* Vérification du format de la table en CAS (optionnel) */
44
PROC CASUTIL;
45
list tables caslib="casuser" level="memory";
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.
« Pour vos architectures modernes, privilégiez le format DVR lors du chargement vers CAS ; c'est le levier le plus efficace pour maximiser la vitesse de traitement en mémoire. »
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.