The examples use generated data (datalines) to create the SAS datasets necessary to demonstrate interleaving.
1 Code Block
DATA STEP / PROC SORT Data
Explanation : This example creates two datasets, 'animal' and 'plant', and sorts them by the common variable 'common'. Then, the DATA step interleaves these datasets using the BY statement. The output dataset 'interleave' contains observations from both datasets, ordered by 'common'.
Copied!
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 Code Block
DATA STEP / PROC SORT Data
Explanation : This example demonstrates interleaving datasets ('animalDupes' and 'plantDupes') that contain duplicate values for the BY variable 'common'. The datasets are sorted before interleaving. The order of the datasets in the SET statement influences the order of observations with the same 'common' values in the output dataset. An additional example with the order 'plantDupes animalDupes' is provided to illustrate this impact.
Copied!
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 Code Block
DATA STEP / PROC SORT Data
Explanation : This example illustrates interleaving datasets ('animalDupes' and 'plantMissing2') where the BY variable 'common' contains values present in one dataset but not in the other (e.g., 'd' in 'animalDupes' and 'f' in 'plantMissing2'). After sorting, the DATA step interleaves the datasets. Variables not present in a specific observation of an input dataset receive missing values in the output dataset.
Copied!
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;
This material is provided "as is" by We Are Cas. There are no warranties, expressed or implied, as to merchantability or fitness for a particular purpose regarding the materials or code contained herein. We Are Cas is not responsible for errors in this material as it now exists or will exist, nor does We Are Cas provide technical support for it.
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.