Help using Base SAS procedures

Find second max value in array and return column name

Reply
Occasional Contributor
Posts: 11

Find second max value in array and return column name

 

Hi all,

 

What i am trying to accomplish is the following , i have an array with 4 variables containing values lest say 1, 2 ,5, 6 etc.

 

I am able to get the max value of the array and have the column name returned but I am stuck on how I can do the same procedure for the next largest value, any ideas?

 

Kind regards and thank you in advance

 

This is my script up till now

 

DATA WANT;
SET HAVE;

ARRAY COL(*) col1 --col4;

INDEX_OF_MAX=WHICHN(MAX(OF COL(*)),OF COL(*));
VALUE_1=VNAME(COL(INDEX_OF_MAX));
RUN;

Super User
Posts: 10,538

Re: Find second max value in array and return column name

The function LARGEST is what you are looking for.

 

Second = Largest(2, of col(*));

Third = Largest(3, of col(*));

and so on. the 2 or 3 could be a variable as well.

Ask a Question
Discussion stats
  • 1 reply
  • 618 views
  • 0 likes
  • 2 in conversation