SAS Procedures

Help using Base SAS procedures
BookmarkSubscribeRSS Feed
sasvader
Fluorite | Level 6

Hi,

I am trying to create the dummy variable Want which is = 1 if there is any observation that has a value in Have.

E.g. Want = 1 for all observations of A1 because there is at least one observation with a value in Have. Want = 0 for B1.

Is there a way to code this? Thanks for your help!

Sample data:

IDHaveWant
A1.1
A1.1
A11001
A1.1
A1.1
A1.1
A1.1
A1.1
B1.0
B1.0
B1.0
B1.0
B1.0
B1.0
B1.0
B1.0
B1.0
B1.0

Regards,

Daniel

2 REPLIES 2
FatCaptain
Fluorite | Level 6

data have ;
id = 'A1' ; have =   . ; output ;
id = 'A1' ; have = 100 ; output ;
id = 'A1' ; have =   . ; output ;
id = 'B1' ; have =   . ; output ;
id = 'B1' ; have =   . ; output ;
id = 'B1' ; have =   . ; output ;
run ;

proc sql ;
create table want as
select have.*,
case when id in
    (select distinct id
    from   have
    where have is not missing) then 1 else 0 end as want
from have ;
quit ;

MikeZdeb
Rhodochrosite | Level 12

Hi, here's a data step solution ...

 

data want;
want = 0;
do until (last.id);
   set have (in=one) have;
   by id;
   if one and have then want = 1;
   if ^one then output;
end;
run;

 

It's based on Howard Schreier's idea of a "self-interleave" ...

 

Interleaving a Dataset with Itself: How and Why

http://www.lexjansen.com/nesug/nesug03/cc/cc002.pdf

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1100 views
  • 0 likes
  • 3 in conversation