I have a data set that have over thousands observations and over ten variables, and all values are numeric.
what I need to do is find out the top 6 bigger values for each observation.
Any feedback would be greatly appreciated
Did you mean the top 6 values for each variable? Then why not use PROC UNIVARIATE.
no, the top 6 values in on observation.
Sample data and output are always helpful in determining requirements.
Perhaps LARGEST function.
I am not clear on your final output, so this is just a idea that you may start upon, after conversion, n5-n10 will be the top 6 bigger value for each row.
%macro have;
data have;
do row=1 to 5;
%do i=1 %to 10;
n&i=ranuni(0);
%end;
output;
end;
run;
%mend;
%have;
data want;
set have;
array n(10) n:;
call sortn(of n(*));
/* put n5-n10;*/
run;
Haikuo
For a descending sort you can use a descending enumerated range.
Thanks, Null. Did not think of that.
Haikuo
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!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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: