Publié le :
Combiner les données CREATION_INTERNE

Exemples : Interclasser les données

Ce code est également disponible en : Deutsch English Español
En attente de validation
L'interclassement est une technique de combinaison de données où les observations de plusieurs jeux de données sont entrelacées dans un nouveau jeu de données. Pour interclasser des jeux de données, ils doivent d'abord être triés ou indexés par les variables BY spécifiées. Le processus parcourt chaque jeu de données séquentiellement, en copiant les observations dans le nouveau jeu de données en respectant l'ordre des variables BY. Les valeurs manquantes sont générées pour les variables présentes dans un jeu de données mais absentes dans un autre. Il est crucial de noter l'ordre dans lequel les jeux de données sont listés dans l'instruction SET, car cela détermine l'ordre des observations lorsque des valeurs de variables BY sont dupliquées. Les exemples ci-dessous illustrent l'interclassement avec des valeurs BY uniques, des valeurs BY dupliquées et des valeurs BY différentes entre les jeux de données d'entrée.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des données générées (datalines) pour créer les jeux de données d'entrée 'animal', 'plant', 'animalDupes' et 'plantMissing2'. SASHELP n'est pas utilisé.

1 Bloc de code
DATA STEP / PROC SORT Data
Explication :
Ce programme crée deux jeux de données, 'animal' et 'plant', puis les trie par la variable 'common'. Ensuite, il interclasse ces jeux de données en un nouveau jeu de données appelé 'interleave'. Les observations du jeu de données 'interleave' sont organisées en alternance selon la valeur de la variable 'common' provenant des jeux de données 'animal' et 'plant'. Le résultat final est affiché par PROC PRINT, montrant toutes les variables des deux jeux de données d'entrée avec des valeurs manquantes si une variable n'est pas présente dans l'un des jeux de données d'origine.
Copié !
1DATA animal;
2 INPUT common $ animal$;
3 DATALINES;
4a Ant
5b Bird
6c Cat
7d Dog
8e Eagle
9f Frog
10;
11RUN;
12 
13DATA plant;
14 INPUT common $ plant$;
15 DATALINES;
16a Apple
17b Banana
18c Coconut
19d Dewberry
20e Eggplant
21f Fig
22;
23RUN;
24 
25PROC SORT DATA=animal; BY common; RUN;
26PROC SORT DATA=plant; BY common; RUN;
27 
28DATA interleave;
29 SET animal plant;
30 BY common;
31RUN;
32PROC PRINT DATA=interleave; RUN;
2 Bloc de code
DATA STEP / PROC SORT Data
Explication :
Cet exemple crée deux jeux de données, 'animalDupes' et 'plantDupes', contenant des valeurs dupliquées pour la variable 'common'. Après le tri par 'common', l'instruction SET interclasse les observations. Étant donné l'ordre 'animalDupes' puis 'plantDupes' dans l'instruction SET, pour les valeurs dupliquées de 'common', les observations de 'animalDupes' apparaîtront avant celles de 'plantDupes'. Le programme imprime ensuite le jeu de données 'interleave', qui contient toutes les observations des deux jeux de données d'entrée, interclassées par la variable 'common'.
Copié !
1DATA animalDupes;
2 INPUT common $ animal$;
3 DATALINES;
4a Ant
5a Ape
6b Bird
7c Cat
8d Dog
9e Eagle
10;
11RUN;
12 
13DATA plantDupes;
14 INPUT common $ plant$;
15 DATALINES;
16a Apple
17b Banana
18c Coconut
19c Celery
20d Dewberry
21e Eggplant
22;
23RUN;
24 
25PROC SORT DATA=animalDupes; BY common; RUN;
26PROC SORT DATA=plantDupes; BY common; RUN;
27 
28DATA interleave;
29 SET animalDupes plantDupes;
30 BY common;
31RUN;
32 
33PROC PRINT DATA=interleave; RUN;
3 Bloc de code
DATA STEP / PROC SORT Data
Explication :
Cet exemple est similaire au précédent, mais l'ordre des jeux de données dans l'instruction SET est inversé ('plantDupes' suivi de 'animalDupes'). Cela démontre que l'ordre dans l'instruction SET détermine la priorité lorsque les valeurs de la variable BY sont dupliquées. Pour les valeurs 'common' en double, les observations de 'plantDupes' seront listées avant celles de 'animalDupes'. Le programme imprime le jeu de données 'interleave'.
Copié !
1DATA animalDupes;
2 INPUT common $ animal$;
3 DATALINES;
4a Ant
5a Ape
6b Bird
7c Cat
8d Dog
9e Eagle
10;
11RUN;
12 
13DATA plantDupes;
14 INPUT common $ plant$;
15 DATALINES;
16a Apple
17b Banana
18c Coconut
19c Celery
20d Dewberry
21e Eggplant
22;
23RUN;
24 
25PROC SORT DATA=animalDupes; BY common; RUN;
26PROC SORT DATA=plantDupes; BY common; RUN;
27 
28DATA interleave;
29 SET plantDupes animalDupes; BY common;
30RUN;
31PROC PRINT DATA=interleave; RUN;
4 Bloc de code
DATA STEP / PROC SORT Data
Explication :
Ce programme interclasse les jeux de données 'animalDupes' et 'plantMissing2', où les deux jeux de données contiennent des valeurs pour la variable 'common' qui ne sont pas présentes dans l'autre (par exemple, 'd' dans 'animalDupes' et 'f' dans 'plantMissing2'). Après le tri, les jeux de données sont interclassés. Le jeu de données 'interleave' résultant inclura toutes les observations des deux jeux de données d'entrée, en créant des valeurs manquantes pour les variables non trouvées dans l'autre jeu de données pour une valeur 'common' donnée. Le programme imprime le jeu de données 'interleave'.
Copié !
1DATA animalDupes;
2 INPUT common $ animal$;
3 DATALINES;
4a Ant
5a Ape
6b Bird
7c Cat
8d Dog
9e Eagle
10;
11RUN;
12 
13DATA plantMissing2;
14 INPUT common $ plant$;
15 DATALINES;
16a Apple
17b Banana
18c Coconut
19e Eggplant
20f Fig
21;
22RUN;
23 
24PROC SORT DATA=animalDupes; BY common; RUN;
25PROC SORT DATA=plantMissing2; BY common; RUN;
26 
27DATA interleave;
28 SET animalDupes plantMissing2;
29 BY common;
30RUN;
31 
32PROC PRINT DATA=interleave; 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.
Informations de Copyright : Copyright © SAS Institute Inc. All Rights Reserved


Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« Utilisez l'interclassement plutôt que la concaténation simple lorsque vous travaillez avec des données temporelles (ex: fusionner les transactions de janvier et de février). Cela vous évite d'avoir à relancer une PROC SORT sur la table finale, ce qui est un gain de temps et de ressources serveur considérable sur de gros volumes »