BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Astounding
PROC Star

OK, looks like you didn't heed my warning.  You accepted a solution as correct when it can give the wrong answer:

 

  • Whenever class5 is missing
  • Whenever two incoming variables are missing (not including the combination of class1 and class2 being missing)

 

Maybe these situations won't occur in your data, but check them!

Shmuel
Garnet | Level 18

@Astounding you are absolutely right.

 

The code should be:

 

data want;

   set have;

        array clx class1-class5 ;  

        class = ' ';

        do i=1 to dim(clx);

           if  class = ' ' and clx(i) ne ' ' then class = clx(i);

           else if clx(i) < class and

                       clx(i)  ne ' ' 

                  then class = clx(i);

       end;

      keep id class;

run; 

 

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

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
  • 16 replies
  • 4720 views
  • 4 likes
  • 5 in conversation