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é !
data animal;
input common $ animal$;
datalines;
a Ant
b Bird
c Cat
d Dog
e Eagle
f Frog
;
run;
data plant;
input common $ plant$;
datalines;
a Apple
b Banana
c Coconut
d Dewberry
e Eggplant
f Fig
;
run;
proc sort data=animal; by common; run;
proc sort data=plant; by common; run;
data interleave;
set animal plant;
by common;
run;
proc print data=interleave; run;
1
DATA animal;
2
INPUT common $ animal$;
3
DATALINES;
4
a Ant
5
b Bird
6
c Cat
7
d Dog
8
e Eagle
9
f Frog
10
;
11
RUN;
12
13
DATA plant;
14
INPUT common $ plant$;
15
DATALINES;
16
a Apple
17
b Banana
18
c Coconut
19
d Dewberry
20
e Eggplant
21
f Fig
22
;
23
RUN;
24
25
PROC SORTDATA=animal; BY common; RUN;
26
PROC SORTDATA=plant; BY common; RUN;
27
28
DATA interleave;
29
SET animal plant;
30
BY common;
31
RUN;
32
PROC PRINTDATA=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é !
data animalDupes;
input common $ animal$;
datalines;
a Ant
a Ape
b Bird
c Cat
d Dog
e Eagle
;
run;
data plantDupes;
input common $ plant$;
datalines;
a Apple
b Banana
c Coconut
c Celery
d Dewberry
e Eggplant
;
run;
proc sort data=animalDupes; by common; run;
proc sort data=plantDupes; by common; run;
data interleave;
set animalDupes plantDupes;
by common;
run;
proc print data=interleave; run;
1
DATA animalDupes;
2
INPUT common $ animal$;
3
DATALINES;
4
a Ant
5
a Ape
6
b Bird
7
c Cat
8
d Dog
9
e Eagle
10
;
11
RUN;
12
13
DATA plantDupes;
14
INPUT common $ plant$;
15
DATALINES;
16
a Apple
17
b Banana
18
c Coconut
19
c Celery
20
d Dewberry
21
e Eggplant
22
;
23
RUN;
24
25
PROC SORTDATA=animalDupes; BY common; RUN;
26
PROC SORTDATA=plantDupes; BY common; RUN;
27
28
DATA interleave;
29
SET animalDupes plantDupes;
30
BY common;
31
RUN;
32
33
PROC PRINTDATA=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é !
data animalDupes;
input common $ animal$;
datalines;
a Ant
a Ape
b Bird
c Cat
d Dog
e Eagle
;
run;
data plantDupes;
input common $ plant$;
datalines;
a Apple
b Banana
c Coconut
c Celery
d Dewberry
e Eggplant
;
run;
proc sort data=animalDupes; by common; run;
proc sort data=plantDupes; by common; run;
data interleave;
set plantDupes animalDupes; by common;
run;
proc print data=interleave; run;
1
DATA animalDupes;
2
INPUT common $ animal$;
3
DATALINES;
4
a Ant
5
a Ape
6
b Bird
7
c Cat
8
d Dog
9
e Eagle
10
;
11
RUN;
12
13
DATA plantDupes;
14
INPUT common $ plant$;
15
DATALINES;
16
a Apple
17
b Banana
18
c Coconut
19
c Celery
20
d Dewberry
21
e Eggplant
22
;
23
RUN;
24
25
PROC SORTDATA=animalDupes; BY common; RUN;
26
PROC SORTDATA=plantDupes; BY common; RUN;
27
28
DATA interleave;
29
SET plantDupes animalDupes; BY common;
30
RUN;
31
PROC PRINTDATA=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é !
data animalDupes;
input common $ animal$;
datalines;
a Ant
a Ape
b Bird
c Cat
d Dog
e Eagle
;
run;
data plantMissing2;
input common $ plant$;
datalines;
a Apple
b Banana
c Coconut
e Eggplant
f Fig
;
run;
proc sort data=animalDupes; by common; run;
proc sort data=plantMissing2; by common; run;
data interleave;
set animalDupes plantMissing2;
by common;
run;
proc print data=interleave; run;
1
DATA animalDupes;
2
INPUT common $ animal$;
3
DATALINES;
4
a Ant
5
a Ape
6
b Bird
7
c Cat
8
d Dog
9
e Eagle
10
;
11
RUN;
12
13
DATA plantMissing2;
14
INPUT common $ plant$;
15
DATALINES;
16
a Apple
17
b Banana
18
c Coconut
19
e Eggplant
20
f Fig
21
;
22
RUN;
23
24
PROC SORTDATA=animalDupes; BY common; RUN;
25
PROC SORTDATA=plantMissing2; BY common; RUN;
26
27
DATA interleave;
28
SET animalDupes plantMissing2;
29
BY common;
30
RUN;
31
32
PROC PRINTDATA=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.
« 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 »
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.