Dear All, how to pick up more than 1 max values in a column and flag them in another column? see attached code. thanks!
The more the merrier:
data sample;
input id x;
datalines;
18 1
18 1
18 2
18 1
18 2
369 2
369 3
369 3
361 1
;
proc sort ;
by id descending x;
run;
data want ;
retain xmax;
set sample;
by id;
xmax=ifn(first.id,x,xmax);
xmax=ifn(x=xmax,xmax,.);
proc print; run;
Hmm ... not really a Graph question, but here is one way to do it...
data sample;
input id x;
datalines;
18 1
18 1
18 2
18 1
18 2
369 2
369 3
369 3
361 1
;
run;
proc sql;
create table sample as
select sample.*, max(x) as group_max
from sample
group by id;
quit; run;
data sample (drop=group_max); set sample;
if x=group_max then xmax=x;
run;
hi ... another SQL idea ...
proc sql;
create table sample as
select *,
case
when x eq max(x) then max(x)
else .
end as xmax
from sample
group by id;
quit;
The more the merrier:
data sample;
input id x;
datalines;
18 1
18 1
18 2
18 1
18 2
369 2
369 3
369 3
361 1
;
proc sort ;
by id descending x;
run;
data want ;
retain xmax;
set sample;
by id;
xmax=ifn(first.id,x,xmax);
xmax=ifn(x=xmax,xmax,.);
proc print; run;
Thanks All !
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.