Hi guys. I have two columns value1 and value2, in value1, say, I have three observations a, b, c, in value2, I have 4 observations a, a, b,m, I want to create a dummy variable match for each row in value1, if the value can be found in value 2, then match=1 otherwise it is 0. So for this dataset, it should be 1,1,0. Can anyone help me with this? Thanks a lot!
Data A;
Input value1 $ value2 $;
Datalines;
a a
b a
c b
. m
;
Run;
Data B;
If _N_ eq 1 Then Do;
Declare Hash H (Dataset:'A (Drop=value1 Rename=(value2=value1)');
H.Definekey('value1');
H.Definedone();
If 0 Then Set A (Drop=value1 Rename=(value2=value1));
End;
Set A;
dummy=1-Min(H.Find(),1);
Run;
Data A;
Input value1 $ value2 $;
Datalines;
a a
b a
c b
. m
;
Run;
Data B;
If _N_ eq 1 Then Do;
Declare Hash H (Dataset:'A (Drop=value1 Rename=(value2=value1)');
H.Definekey('value1');
H.Definedone();
If 0 Then Set A (Drop=value1 Rename=(value2=value1));
End;
Set A;
dummy=1-Min(H.Find(),1);
Run;
Use PROC GLMMOD to create dummy variables.
Thanks PaigeMiller!
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.
Find more tutorials on the SAS Users YouTube channel.