Publié le :

Exemples : Mise à jour de données

Ce code est également disponible en : Deutsch English Español
En attente de validation
L'instruction UPDATE est un outil puissant pour la maintenance des ensembles de données. Elle requiert une instruction BY et que les ensembles de données d'entrée soient triés ou indexés par les variables BY. La souplesse de l'instruction UPDATE permet d'ajouter, de supprimer ou de renommer des variables dans l'ensemble de données de sortie. Par défaut, les valeurs manquantes dans l'ensemble de données de transaction ne remplacent pas les valeurs existantes dans l'ensemble de données maître, mais ce comportement peut être modifié avec l'option UPDATEMODE=NOMISSINGCHECK. Il est crucial de s'assurer que les valeurs de la variable BY sont uniques dans l'ensemble de données maître, car des doublons peuvent entraîner des mises à jour partielles.
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 :
Cet exemple illustre la mise à jour d'un ensemble de données maître ('master') avec de nouvelles valeurs provenant d'un ensemble de données de transaction ('plantNew') en utilisant l'instruction UPDATE et la variable 'common' comme variable BY. La valeur 'Eggplant' pour 'plant' dans la ligne 5 de 'master' est remplacée par 'Escarole' de 'plantNew'.
Copié !
1DATA master;
2 INPUT common $ animal $ plant $;
3 DATALINES;
4a Ant Apple
5b Bird Banana
6c Cat Coconut
7d Dog Dewberry
8e Eagle Eggplant
9f Frog Fig
10;
11RUN;
12 
13DATA plantNew;
14 INPUT common $ plant $;
15 DATALINES;
16a Apricot
17b Barley
18c Cactus
19d Date
20e Escarole
21f Fennel
22;
23RUN;
24 
25DATA master2;
26 update master plantNew;
27 BY common;
28RUN;
29PROC PRINT DATA=master2; RUN;
2 Bloc de code
DATA STEP Data
Explication :
Cet exemple démontre le comportement de l'instruction UPDATE lorsque l'ensemble de données de transaction ('plantNewDupes') contient des valeurs en double pour la variable BY ('common'). La valeur 'Dewberry' est remplacée par 'Dill', car 'Dill' est la dernière valeur pour 'plant' associée à 'd' dans l'ensemble de données de transaction. Il est important de noter que si l'ensemble de données maître contient des doublons pour la variable BY, seule la première occurrence est mise à jour, et un avertissement est émis dans le journal SAS.
Copié !
1DATA master;
2 INPUT common $ animal $ plant $;
3 DATALINES;
4a Ant Apple
5b Bird Banana
6c Cat Coconut
7d Dog Dewberry
8e Eagle Eggplant
9f Frog Fig
10;
11RUN;
12 
13DATA plantNewDupes;
14 INPUT common $ plant $;
15 DATALINES;
16a Apricot
17b Barley
18c Cactus
19d Date
20d Dill
21e Escarole
22f Fennel
23;
24RUN;
25 
26DATA master;
27 update master plantNewDupes;
28 BY common;
29RUN;
30PROC PRINT DATA=master; RUN;
3 Bloc de code
DATA STEP Data
Explication :
Ce premier code illustre la mise à jour d'un ensemble de données maître ('master') avec un ensemble de données de transaction ('minerals') qui introduit une nouvelle variable ('mineral'), des valeurs manquantes et des valeurs de variable BY non correspondantes. La variable 'mineral' est ajoutée. Les observations des ensembles de données de transaction sans correspondance dans le maître sont ajoutées comme de nouvelles observations. Les valeurs manquantes dans l'ensemble de données de transaction ne remplacent pas les valeurs existantes dans l'ensemble de données maître par défaut.
Copié !
1DATA master;
2 INPUT common $ animal $ plant $;
3 DATALINES;
4a Ant .
5c Cat Coconut
6d Dog Dewberry
7e Eagle Eggplant
8f Frog Fig
9;
10RUN;
11 
12DATA minerals;
13 INPUT common $ plant $ mineral $;
14 DATALINES;
15a Apricot Amethyst
16b Barley Beryl
17c Cactus .
18e . .
19f Fennel .
20g Grape Garnet
21;
22RUN;
23 
24DATA master;
25 update master minerals;
26 BY common;
27RUN;
28 
29PROC PRINT DATA=master; RUN;
4 Bloc de code
DATA STEP
Explication :
Ce deuxième code, basé sur les ensembles de données de l'exemple 3.1, montre comment l'option UPDATEMODE=NOMISSINGCHECK permet aux valeurs manquantes dans l'ensemble de données de transaction de remplacer les valeurs correspondantes dans l'ensemble de données maître. Ici, la valeur de 'plant' dans l'observation 5 sera définie comme manquante, car elle est manquante dans l'ensemble de données de transaction 'minerals' et l'option est activée.
Copié !
1DATA master;
2 update master minerals updatemode=nomissingcheck;
3 BY common;
4RUN;
5PROC PRINT DATA=master;
6 title "Updated Data Set master";
7 title2 "With Values Updated to Missing";
8RUN;
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
Stéphanie
Spécialiste Machine Learning et IA.
« Utilisez UPDATE plutôt que MERGE pour vos flux de gestion de comptes ou d'inventaires. Si vous devez absolument forcer le remplacement d'une valeur existante par un vide (par exemple, pour annuler un champ), vous pouvez utiliser l'option UPDATEMODE=NOMISSINGCHECK, mais manipulez-la avec précaution pour ne pas corrompre vos données historiques par inadvertanc »