Les exemples utilisent les jeux de données intégrés SASHELP.SHOES, SASHELP.CLASS et SASHELP.BASEBALL.
1 Bloc de code
DATA STEP Data
Explication : Cet exemple utilise l'instruction WHERE pour sélectionner conditionnellement des lignes du jeu de données sashelp.class et écrit les lignes sélectionnées dans la table mylib.shoes. Le premier DATA step s'exécute dans SAS et sous-ensemble les données, sélectionnant uniquement les lignes où les ventes sont supérieures à 500 000 $. Les données filtrées sont chargées dans la table de sortie mylib.shoes. Le second DATA step s'exécute sur la table mylib.shoes pour sous-ensemble davantage les données. Ce DATA step sélectionne uniquement les lignes où les valeurs de la variable Region sont "Canada". Les lignes sélectionnées sont ensuite écrites dans la table de sortie mylib.shoes2.
Copié !
libname mylib ;
data mylib.shoes;
set sashelp.shoes;
where Sales>=500000;
run;
proc print data=mylib.shoes;
var Region Product Sales;
run;
data mylib.shoes2;
set mylib.shoes;
where Region="Canada";
run;
proc print data=mylib.shoes2;
var Region Product Sales;
run;
1
LIBNAME mylib ;
2
3
DATA mylib.shoes;
4
SET sashelp.shoes;
5
where Sales>=500000;
6
RUN;
7
PROC PRINTDATA=mylib.shoes;
8
var Region Product Sales;
9
RUN;
10
11
DATA mylib.shoes2;
12
SET mylib.shoes;
13
where Region="Canada";
14
RUN;
15
16
PROC PRINTDATA=mylib.shoes2;
17
var Region Product Sales;
18
RUN;
2 Bloc de code
DATA STEP Data
Explication : Cet exemple utilise une expression WHERE composée pour sélectionner un sous-ensemble de données de la table d'entrée mylib.shoes. La procédure CASUTIL charge d'abord le jeu de données SAS sashelp.shoes dans CAS. Le DATA step s'exécute ensuite dans CAS pour sélectionner conditionnellement les lignes où les ventes sont supérieures à 500 000 $ ET la région est "Canada". L'expression WHERE composée se compose de deux expressions WHERE jointes par l'opérateur ET.
Copié !
data mylib.shoes;
set mylib.shoes;
where Sales>=500000 and Region="Canada";
keep Region Product Sales;
run;
proc print data=mylib.shoes; run;
1
2
DATA mylib.shoes;
3
SET mylib.shoes;
4
where Sales>=500000 and Region="Canada";
5
keep Region Product Sales;
6
RUN;
7
8
PROC PRINTDATA=mylib.shoes; RUN;
3 Bloc de code
DATA STEP Data
Explication : Dans l'exemple suivant, l'opérateur AND est utilisé dans l'instruction WHERE pour trouver les lignes basées sur les conditions pour l'âge et le sexe.
Copié !
data class;
set sashelp.class;
where sex="M" and age >= 15;
run;
proc print data=class;
run;
1
DATA class;
2
SET sashelp.class;
3
where sex="M" and age >= 15;
4
RUN;
5
PROC PRINTDATA=class;
6
RUN;
4 Bloc de code
DATA STEP Data
Explication : Cet exemple utilise l'opérateur OR pour trouver les lignes qui satisfont l'une ou l'autre des conditions.
Copié !
data class;
set sashelp.class;
where sex="M" or age>=15;
run;
proc print data=class;
title 'OR finds all Males and Anyone 15 Years or Older';
run;
1
DATA class;
2
SET sashelp.class;
3
where sex="M" or age>=15;
4
RUN;
5
PROC PRINTDATA=class;
6
title 'OR finds all Males and Anyone 15 Years or Older';
7
RUN;
5 Bloc de code
DATA STEP Data
Explication : Cet exemple utilise le symbole inférieur à (<) pour trouver les lignes qui satisfont les critères d'âge et de sexe.
Copié !
data class;
set sashelp.class;
where age < 15 and sex NE "M";
run;
proc print data=class;
title 'Finds Females
Older less than 15 Years';
run;
1
DATA class;
2
SET sashelp.class;
3
where age < 15 and sex NE "M";
4
RUN;
5
PROC PRINTDATA=class;
6
title 'Finds Females
7
Older less than 15 Years';
8
RUN;
6 Bloc de code
DATA STEP Data
Explication : L'ordre dans lequel SAS traite les expressions jointes par des opérateurs booléens affecte la sortie. L'ordre des opérations par défaut est de traiter les expressions NOT en premier, les expressions AND ensuite, et les expressions OR en dernier.
Copié !
data class;
set sashelp.class;
where age>15 or height<60 and sex="F";
run;
proc print data=class;
title 'age > 15 OR height < 60 AND sex = F';
run;
1
DATA class;
2
SET sashelp.class;
3
where age>15 or height<60 and sex="F";
4
RUN;
5
PROC PRINTDATA=class;
6
title 'age > 15 OR height < 60 AND sex = F';
7
RUN;
7 Bloc de code
DATA STEP Data
Explication : Pour contrôler l'ordre d'évaluation, utilisez des parenthèses. Voici le même exemple, sauf que des parenthèses sont utilisées pour spécifier que l'expression OR est évaluée en premier, puis l'expression AND.
Copié !
data class;
set sashelp.class;
where (age>15 or height<60) and sex="F";
run;
proc print data=class;
title '(age > 15 OR height < 60) AND sex = F';
run;
1
DATA class;
2
SET sashelp.class;
3
where (age>15 or height<60) and sex="F";
4
RUN;
5
PROC PRINTDATA=class;
6
title '(age > 15 OR height < 60) AND sex = F';
7
RUN;
8 Bloc de code
DATA STEP Data
Explication : Cet exemple utilise l'option d'ensemble de données WHERE= pour sélectionner conditionnellement des lignes du jeu de données sashelp.shoes.
Copié !
data sales;
set sashelp.shoes(where=(Region="Canada" and Sales<2000));
run;
proc print data=sales; run;
1
DATA sales;
2
SET sashelp.shoes(where=(Region="Canada" and Sales<2000));
3
RUN;
4
PROC PRINTDATA=sales; RUN;
9 Bloc de code
DATA STEP
Explication : Pour exécuter le DATA step de sorte que le traitement soit effectué sur le serveur CAS, vous pouvez spécifier l'option d'ensemble de données WHERE= sur la table d'entrée dans l'instruction SET. L'option d'ensemble de données WHERE= est prise en charge pour le traitement dans CAS uniquement lorsqu'elle est spécifiée sur la table CAS d'entrée (dans l'instruction SET). Si vous spécifiez l'option d'ensemble de données WHERE= sur la table CAS de sortie, vous n'obtiendrez pas d'erreur comme le montre l'exemple suivant.
Copié !
/* Specify the WHERE= data set option on the output CAS
table (unsupported for CAS DATA step processing) */
data mylib.sales(where=(Region="Canada" and Sales<2000));
set mylib.shoes;
run;
proc print data=mylib.sales; run;
1
/* Specify the WHERE= data set option on the output CAS
2
table (unsupported for CAS DATA step processing) */
3
4
DATA mylib.sales(where=(Region="Canada" and Sales<2000));
5
SET mylib.shoes;
6
RUN;
7
PROC PRINTDATA=mylib.sales; RUN;
10 Bloc de code
DATA STEP Data
Explication : Dans l'exemple suivant, le premier DATA step crée un ensemble de données de sortie, mybaseball, et l'option index= ajoute un index simple à la variable team. Le second DATA step lit l'ensemble de données et sélectionne pour traitement uniquement les lignes où le nom de l'équipe est Atlanta.
Copié !
data mybaseball(index=(team));
set sashelp.baseball;
run;
data mybaseball;
set sashelp.baseball;
where Team="Atlanta";
keep Name Team Position;
run;
proc print data=mybaseball; run;
1
DATA mybaseball(index=(team));
2
SET sashelp.baseball;
3
RUN;
4
5
DATA mybaseball;
6
SET sashelp.baseball;
7
where Team="Atlanta";
8
keep Name Team Position;
9
RUN;
10
PROC PRINTDATA=mybaseball; 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.
« Soyez particulièrement vigilant lors de l'utilisation de l'option WHERE= sur les tables de sortie dans l'environnement CAS. Comme indiqué dans le guide, le filtrage doit être fait à l'entrée (SET) pour profiter de la puissance du calcul distribué. Si vous filtrez à la sortie, SAS risque de rapatrier toutes les données sur un seul nœud avant de les trier, perdant ainsi tout le bénéfice du Cloud. »
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.