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;

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!

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
  • 830 views
  • 0 likes
  • 2 in conversation