Les données sont soit créées directement dans le code à l'aide de 'Datalines', soit proviennent de la bibliothèque standard 'SASHELP' (tables 'class' et 'air'). Le premier exemple avec 'sasuser.one' est conçu pour générer une erreur et ne dépend pas d'une source externe.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc tente de créer une table 'sasuser.one' mais l'instruction 'output' référence 'one' (implicitement 'work.one'), ce qui n'est pas déclaré dans l'instruction 'data'. Cela génère une erreur de syntaxe et le DATA STEP s'arrête.
Copié !
data sasuser.one;
x=1;
y=27;
output one;
run;
1
DATA sasuser.one;
2
x=1;
3
y=27;
4
OUTPUT one;
5
RUN;
2 Bloc de code
DATA STEP Data
Explication : Création d'une table de travail 'CLASS' en lisant des données directement incluses dans le code (instream data) via une carte de données 'Datalines'.
Copié !
Data CLASS;
Input Name $ Gender $ Age;
Datalines;
Anna F 23
Ben M 25
Bob M 21
Brian M 27
Edward M 26
Emma F 32
Joe M 34
Sam F 32
Tom M 24
;
Run;
1
DATA CLASS;
2
INPUT Name $ Gender $ Age;
3
DATALINES;
4
Anna F 23
5
Ben M 25
6
Bob M 21
7
Brian M 27
8
Edward M 26
9
Emma F 32
10
Joe M 34
11
Sam F 32
12
Tom M 24
13
;
14
RUN;
3 Bloc de code
DATA STEP Data
Explication : Ce DATA STEP lit la table 'WORK.CLASS' et la divise en deux tables : 'WORK.MALES' pour les hommes et 'WORK.FEMALES' pour les femmes. La variable 'age' est supprimée de la table 'FEMALES' et la variable 'gender' est supprimée des deux tables de sortie.
Copié !
data WORK.MALES WORK.FEMALES(drop=age);
set WORK.CLASS;
drop gender; /* the position of the drop does not effect the result */
if Gender="M" then output WORK.MALES;
else if Gender="F" then output WORK.FEMALES;
run;
1
DATA WORK.MALES WORK.FEMALES(drop=age);
2
SET WORK.CLASS;
3
drop gender; /* the position of the drop does not effect the result */
4
IF Gender="M"THENOUTPUT WORK.MALES;
5
ELSEIF Gender="F"THENOUTPUT WORK.FEMALES;
6
RUN;
4 Bloc de code
DATA STEP Data
Explication : Après avoir créé la table 'sales_d', un second DATA STEP la traite. Il utilise un tableau (array) 'month' pour regrouper les variables de ventes. Une valeur est mise à manquant pour illustrer que l'addition simple (+) propage les valeurs manquantes, tandis que la fonction SUM les ignore dans le calcul.
Copié !
Data sales_d;
Input SalesID $ SalesJan FebSales MarchAmt;
Datalines;
W6790 50 400 350
W7693 25 100 125
W1387 23 300 250
;
Run;
data qtr1;
set sales_d;
array month{3} SalesJan FebSales MarchAmt;
if salesid ='W1387' then salesjan =.;
Qtr_1 = month{1} + month{2} +month{3}; *does not work on missing values;
Qtr = sum(of month{*});
run;
1
DATA sales_d;
2
INPUT SalesID $ SalesJan FebSales MarchAmt;
3
DATALINES;
4
W6790 50400350
5
W7693 25100125
6
W1387 23300250
7
;
8
RUN;
9
DATA qtr1;
10
SET sales_d;
11
array month{3} SalesJan FebSales MarchAmt;
12
IF salesid ='W1387'THEN salesjan =.;
13
Qtr_1 = month{1} + month{2} +month{3}; *does not work on missing values;
14
Qtr = sum(of month{*});
15
RUN;
5 Bloc de code
DATA STEP Data
Explication : Crée une table 'output' en sélectionnant des observations de 'sashelp.class'. Une nouvelle variable 'BMI' est calculée, puis une instruction 'IF' (subsetting IF) est utilisée pour ne conserver que les observations où le BMI est supérieur ou égal à 20.
Copié !
data output;
set sashelp.class;
BMI=(weight*703)/Height**2;
if bmi ge 20; /* use IF when a new var is not declared*/
run;
1
DATAOUTPUT;
2
SET sashelp.class;
3
BMI=(weight*703)/Height**2;
4
IF bmi ge 20; /* use IF when a new var is not declared*/
5
RUN;
6 Bloc de code
DATA STEP Data
Explication : Ce DATA STEP illustre une boucle 'DO'. La variable 'x' est écrasée à chaque itération. À la fin de la boucle, 'index' vaut 7 (la première valeur qui dépasse la limite de 5), mais la dernière valeur assignée à 'x' est 5. La table 'loop' contiendra une seule observation avec la valeur finale de x.
Copié !
data loop;
x=0;
do index =1 to 5 by 2; /* index: 1 3 5 7 */
x=index; /*. x: 1 3 5 */
end;
run;
1
DATA loop;
2
x=0;
3
DO index =1 to 5BY2; /* index: 1 3 5 7 */
4
x=index; /*. x: 1 3 5 */
5
END;
6
RUN;
7 Bloc de code
DATA STEP Data
Explication : Démonstration de la lecture de données numériques. SAS interprète correctement la valeur '+35.' comme le nombre 35 lors de la lecture des données.
Copié !
data test1;
input name $ age;
datalines;
John +35. /* either '+' or '-' works */
run;
1
DATA test1;
2
INPUT name $ age;
3
DATALINES;
4
John +35. /* either '+' or '-' works */
5
RUN;
8 Bloc de code
PROC MEANS
Explication : Calcule les statistiques descriptives par défaut (N, moyenne, écart-type, min, max) pour la variable 'air' de la table 'sashelp.air'.
Copié !
proc means data = sashelp.air;
var air;
run;
1
PROC MEANSDATA = sashelp.air;
2
var air;
3
RUN;
9 Bloc de code
PROC REPORT
Explication : Crée un format personnalisé 'score' avec PROC FORMAT pour catégoriser les notes. Ensuite, PROC REPORT est utilisé pour afficher la variable 'exam' en appliquant ce format, affichant 'Pass' au lieu de 50.1.
Explication : Un format 'agegrp' est créé pour grouper les âges. PROC MEANS est ensuite utilisé pour calculer des statistiques sur la variable 'Height', groupées par 'Sex' et par les groupes d'âge définis par le format 'agegrp'.
Copié !
proc format;
value agegrp
low-12 ='Pre-Teen'
13-high = 'Teen';
run;
proc means data=SASHELP.CLASS min max mean maxdec=1;
var Height;
class Sex Age;
format Age agegrp.;
run;
1
PROC FORMAT;
2
value agegrp
3
low-12 ='Pre-Teen'
4
13-high = 'Teen';
5
RUN;
6
PROC MEANSDATA=SASHELP.CLASS min max mean maxdec=1;
7
var Height;
8
class Sex Age;
9
FORMAT Age agegrp.;
10
RUN;
11 Bloc de code
DATA STEP Data
Explication : Illustre une erreur de conversion de type. La variable 'cost' est initialisée comme une chaîne de caractères à cause des symboles '$' et ','. La multiplication par 0.1 échoue car 'cost' ne peut pas être converti automatiquement en numérique. 'discount' aura une valeur manquante.
Copié !
data work.retail;
cost = "$20,000";
discount = 0.1*cost;
run;
1
DATA work.retail;
2
cost = "$20,000";
3
discount = 0.1*cost;
4
RUN;
12 Bloc de code
DATA STEP Data
Explication : Démonstration des fonctions de date SAS. La fonction MDY crée une valeur de date SAS à partir du mois, du jour et de l'année. Les fonctions DAY, MONTH, YEAR et WEEKDAY extraient les parties correspondantes de cette date. La date SAS numérique 'x' est affichée dans un format lisible 'Date9.'.
Copié !
data work.date;
x =mdy('01', '01', '1960');
day = day(x);
month = month(x);
year = year(x);
weekday = weekday(x);
format x Date9.;
run;
1
DATA work.date;
2
x =mdy('01', '01', '1960');
3
day = day(x);
4
month = month(x);
5
year = year(x);
6
weekday = weekday(x);
7
FORMAT x Date9.;
8
RUN;
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.