Publié le :
Action CREATION_INTERNE

Instruction DELETE

Ce code est également disponible en : Deutsch English Español
En attente de validation
L'instruction DELETE est utilisée dans une étape DATA pour arrêter le traitement de l'observation en cours. Lorsque DELETE est exécutée, l'observation courante n'est pas écrite dans les jeux de données créés par l'étape DATA, et le contrôle retourne immédiatement au début de l'étape DATA pour l'itération suivante. Elle est souvent utilisée dans une clause THEN d'une instruction IF-THEN ou dans un groupe DO exécuté sous condition. Contrairement à l'instruction DROP qui exclut des variables d'un jeu de données en sortie, DELETE exclut des observations entières.
Analyse des données

Type : CREATION_INTERNE


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

1 Bloc de code
DATA STEP Data
Explication :
Cet exemple crée un jeu de données 'new_data'. Il lit les variables 'id' et 'leafwt'. Si la valeur de 'leafwt' est manquante (représentée par '.'), l'instruction DELETE est exécutée, ce qui supprime l'observation entière du jeu de données final. Seules les observations avec une valeur non manquante pour 'leafwt' seront incluses dans 'new_data'.
Copié !
1DATA new_data;
2 INPUT id leafwt;
3 DATALINES;
4 1 10.5
5 2 .
6 3 25.3
7 4 .
8 5 18.0
9 ;
10 IF leafwt=. THEN delete;
11RUN;
12 
13PROC PRINT DATA=new_data;
14 title 'Observations après suppression des valeurs manquantes de LEAFWT';
15RUN;
2 Bloc de code
DATA STEP Data
Explication :
Cet exemple lit des données brutes en ligne (simulant un fichier externe via 'infile datalines'). Il crée un jeu de données 'topsales'. Pour chaque observation lue, il vérifie si la valeur de 'yrsales' (ventes annuelles) est inférieure à 100 000. Si c'est le cas, l'instruction DELETE est exécutée, excluant cette observation du jeu de données 'topsales'. Le jeu de données final 'topsales' ne contiendra que les observations où 'yrsales' est supérieur ou égal à 100 000.
Copié !
1DATA topsales;
2 INFILE DATALINES;
3 INPUT region $ office $ product $ yrsales;
4 IF yrsales<100000 THEN delete;
5 DATALINES;
6 East Boston Hardware 120000
7 West LA Software 95000
8 North Chicago Electronics 200000
9 South Miami Services 80000
10 Central Dallas Retail 150000
11 ;
12RUN;
13 
14PROC PRINT DATA=topsales;
15 title 'Ventes annuelles supérieures à 100 000';
16RUN;
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.
Informations de Copyright : Copyright © SAS Institute Inc. All Rights Reserved


Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« Utilisez DELETE principalement pour le nettoyage de qualité de données (gestion des valeurs manquantes, suppression des enregistrements de test). Pour des filtrages plus "métier" (comme dans l'exemple des ventes inférieures à 100 000), l'utilisation d'une instruction IF de sous-ensemble (IF yrsales >= 100000;) est souvent considérée comme plus lisible et concise par la communauté SAS »