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-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

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