BookmarkSubscribeRSS Feed
LillianLee
Calcite | Level 5

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 appreciatedSmiley Happy

9 REPLIES 9
Tom
Super User Tom
Super User

Did you mean the top 6 values for each variable?  Then why not use PROC UNIVARIATE.

LillianLee
Calcite | Level 5

no, the top 6 values in on observation.

Reeza
Super User

Sample data and output are always helpful in determining requirements.

data_null__
Jade | Level 19

Perhaps LARGEST function.

data have1;
   array x[10];
   do row=1 to 5;
     
do i=1 to dim(x);
         x=ranuni(1);
         end;
     
output;
     
end;
  
drop row i;
   run;

data largest6;
   set have1;
   array l[6];
   do i=1 to dim(l);
      l=largest(i,of x:);
     
end;
  
run;
proc print;
  
run;
Peter_C
Rhodochrosite | Level 12

It might be that I'm easily impressed, but continue to be amazed at our contributor who comes up (I expect, first) with these novel functions like

     LARGEST(i, array )

Much appreciation for contributor

data_null__
Jade | Level 19

Thank you .  The last few versions of SAS have intruduced some really nice functions.

Haikuo
Onyx | Level 15

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

data_null__
Jade | Level 19

For a descending sort you can use a descending enumerated range.

data want;
   set have;
   set have(rename=(x1-x10=n1-n10));
   call sortn(of n10-n1);
   drop n7-n10;
   run;
Haikuo
Onyx | Level 15

Thanks, Null. Did not think of that.

Haikuo

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 9 replies
  • 1752 views
  • 1 like
  • 6 in conversation