BookmarkSubscribeRSS Feed
rashmirao99
Fluorite | Level 6

Hi,

I need help with ADAM data ADLB.  I need to create  a flag variable:

 The condition is:  If a subject has 4  paramcd has 4 aval values which are same I need to flag the first record as Y.  For eample:

 

paramcd         aval         Flag

alb                  4              Y

alb                  4    

alb                 4

alb                 4

 

Hope this is clear.

 

Thanks

Rashmi.

3 REPLIES 3
Kurt_Bremser
Super User

If you run this code:

data have;
input paramcd $ aval;
datalines;
alb 4
alb 4
alb 4
alb 4
xxx 1
xxx 2
xxx 2
xxx 2
xxx 2
xxx 2
yyy 1
yyy 2
yyy 3
yyy 2
yyy 2
yyy 2
yyy 3
zzz 1
zzz 2
zzz 2
zzz 3
zzz 2
zzz 2
zzz 2
zzz 3
zzz 3
zzz 3
zzz 3
;

which of the observations should be flagged "Y"?

rashmirao99
Fluorite | Level 6

it should flag like this:  it should flag only when all the values for paramcd are equal.

alb 4     Y
alb 4
alb 4
alb 4
xxx 1
xxx 2  
xxx 2
xxx 2
xxx 2
xxx 2
yyy 1
yyy 2
yyy 3
yyy 2
yyy 2
yyy 2
yyy 3
zzz 1
zzz 2
zzz 2
zzz 3
zzz 2
zzz 2
zzz 2
zzz 3
zzz 3
zzz 3
zzz 3

 

Thanks.

Kurt_Bremser
Super User

Then run this code, based on my earlier "have" dataset:

proc sql;
create table flag as
select
  paramcd,
  case
    when count(distinct aval) = 1
    then 'Y'
    else ' '
  end as flag
from have
group by paramcd
having flag = 'Y';
quit;

data want;
merge
  have
  flag
;
by paramcd;
if not first.paramcd then flag = ' ';
run;

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
Mastering the WHERE Clause in PROC SQL

SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.

Find more tutorials on the SAS Users YouTube channel.

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