Friday, 7 October 2011

Merging


Combine the tables.

Types of  Merging :
/*1.one-one without relation*/
data dm1;
input sno $ gno $ pid age;
cards;
s1 g1 101 23
s1 g1 102 34
s2 g2 103 24
s2 g2 104 32
;
data dm2;
input sex $ race $;
cards;
female asian
male african
female asian
male african
;
data dm3;
input color $ weight;
cards;
w 67
b 56
w 78
b 60
;
data dm;
merge dm1 dm2 dm3;
run;
proc print data=dm;
run;

/*2.one to one with relation*/
data qm1;
input sno $ gno $ pid age;
cards;
s1 g1 101 23
s1 g1 102 34
s2 g2 103 24
s2 g2 104 32
;
data qm2;
input sex $ race $ pid;
cards;
female asian 101
male african 102
female asian 103
male african 104
;
data qm3;
input color $ weight pid;
cards;
w 67 101
b 56 102
w 78 103
b 60 104
;
proc sort data=qm1;
by pid;
proc sort data=qm2;
by pid;
proc sort data=qm3;
by pid;
run;
data qm;
merge qm1 qm2 qm3;
run;
proc print data=qm;
run;

/*3.one to many*/
data mh;
 input pid visit dose;
 cards;
 101 1 0.05
 102 1 0.1
 103 1 0.15
 104 1 0.2
 101 2 0.05
 102 2 0.1
 103 2 0.15
 104 2 0.2
;
proc sort data=qm;
by pid;
proc sort data=mh;
by pid;
run;

data qm_mh;
merge qm mh;
by pid ;
run;
proc print data=qm_mh;
run;

/*4.many to one*/
data ae;
input pid visit aetype $;
cards;
 101 1 eyedis
 102 1 eyedis
 103 1 eardis
 104 1 skinprb
 101 2 eyedis
 102 2 eardis
 103 2 eardis
 104 2 eyedis
 ;

/*5.many to one*/
 data mh_ae;
 merge mh qm;
 by pid;
 run;
 proc print data=mh_ae;
 run;

 /*6.many to many*/
proc sort data=mh;
 by pid visit;
 proc sort data=ae;
 by pid visit;
 run;

 data ae_mh;
 merge  mh ae;
 by pid visit;
 run;
 proc print data=ae_mh;
 run;

No comments:

Post a Comment