Dear all,
My data set has 1 char and 1 Num var, the char var has duplicates but the numeriv value for the particular char value will be unque as in given example, I am currently struggling to get the Top 10 count in num(sorted order ) as shown below pls help!!
Have dataset
name score
------- --------
John 2500
john 2000
mell 5000
shawm 4850
Mell 9000
Mike 2500
Mike 1650
Mike 6570
ness 2330
Want data set - Top 3 names
Name
Mell | 14000 |
Mike | 10720 |
Shawn | 4850 |
Please help!!
Try this....
proc sql;
create table WANT as
select
upcase(name) as name,
sum(score) as total_score
from HAVE
group by calculated name
order by calculated SCORE desc;
quit;
data WANT;
set WANT(obs=10);
run;
Hope this helps...
Hi,
Something like the following will get you the score totals for each name:
proc sql;
create table want as
select distinct name, sum(score) as total
from have
group by name
order by total desc ;
quit;
You should then be able to write a step to keep only the top 3.
Good luck,
Lee
Proc Rank could do it in one step e.g.
proc rank data=sashelp.class out=want(where=(rank<=3)) descending;
var weight;
ranks rank;
run;
Try this....
proc sql;
create table WANT as
select
upcase(name) as name,
sum(score) as total_score
from HAVE
group by calculated name
order by calculated SCORE desc;
quit;
data WANT;
set WANT(obs=10);
run;
Hope this helps...
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.
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.
Ready to level-up your skills? Choose your own adventure.