Publié le :
Contrôle des variables CREATION_INTERNE

Option d'ensemble de données DROP=

Ce code est également disponible en : Deutsch English Español
En attente de validation
Si l'option est associée à un ensemble de données d'entrée, les variables ne sont pas disponibles pour le traitement. Si l'option d'ensemble de données DROP= est associée à un ensemble de données de sortie, SAS© n'écrit pas les variables dans l'ensemble de données de sortie, mais elles sont disponibles pour le traitement. La documentation compare également l'option DROP= à l'instruction DROP, notant que DROP= peut s'appliquer aux ensembles de données d'entrée et de sortie dans les étapes DATA, tandis que l'instruction DROP s'applique uniquement aux ensembles de données de sortie. De plus, dans les étapes PROC, seule l'option DROP= peut être utilisée.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées (datalines) ou SASHELP.

1 Bloc de code
DATA STEP Data
Explication :
Dans cet exemple, les variables SALARY et GENDER ne sont pas incluses dans le traitement de l'ensemble de données PAYROLL et ne sont pas écrites dans les ensembles de données de sortie PLAN1 ou PLAN2. L'instruction DATA ne peut pas référencer SALARY ou GENDER dans sa logique car l'option DROP= les empêche d'être lues par l'instruction SET.
Copié !
1LIBNAME mylib 'home/userid/mydata';
2 
3DATA _null_;
4 INPUT id name $ salary gender $ hired date9.;
5 DATALINES;
61 John 50000 M 01JAN1997
72 Jane 60000 F 01JAN1999
83 Mike 45000 M 01FEB1998
94 Emily 70000 F 01MAR2000
10;
11RUN;
12 
13DATA payroll;
14 SET _null_;
15RUN;
16 
17DATA plan1 plan2;
18 SET payroll(drop=salary gender);
19 IF hired<'01jan98'd THEN OUTPUT plan1;
20 ELSE OUTPUT plan2;
21RUN;
2 Bloc de code
DATA STEP Data
Explication :
Dans cet exemple, SALARY et GENDER sont disponibles pour le traitement dans l'étape DATA, mais ne sont pas écrites dans l'ensemble de données PLAN2. Cependant, elles sont écrites dans l'ensemble de données PLAN1. Cela montre comment l'option DROP= peut être utilisée spécifiquement pour un ensemble de données de sortie, permettant le traitement des variables en interne tout en contrôlant leur inclusion dans les ensembles de données finaux.
Copié !
1LIBNAME mylib 'home/userid/mydata';
2 
3DATA _null_;
4 INPUT id name $ salary gender $ hired date9.;
5 DATALINES;
61 John 50000 M 01JAN1997
72 Jane 60000 F 01JAN1999
83 Mike 45000 M 01FEB1998
94 Emily 70000 F 01MAR2000
10;
11RUN;
12 
13DATA payroll;
14 SET _null_;
15RUN;
16 
17DATA plan1 plan2(drop=salary gender);
18 SET payroll;
19 IF hired<'01jan98'd THEN OUTPUT plan1;
20 ELSE OUTPUT plan2;
21RUN;
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.
Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« Si vous n'avez pas besoin d'une variable pour vos calculs, "droppez-la" dès l'entrée (SET). C'est une excellente habitude à prendre, surtout sous SAS Viya, car cela réduit la charge réseau entre votre stockage et votre serveur de calcul, rendant vos programmes nettement plus rapides sur de gros volumes. »