DATA Step, Macro, Functions and more

two level sort

New Contributor
Posts: 2

two level sort


I have a table containing a few different experiments A, B, C...that where output Y has been measured. I would like to sort Y in ascending order but not for the whole table, only within each experiment A, B, C...

and get a table like this:

EXP     Measurement Y

A      YA1

A      YA2

A      YA3

B     YB1

B     YB2

B     YB3


(where YA1<YA3<YA3 but YB1 could be anything either bigger or smaller than YA3)

Thank you for any advice!

Oh, and I'd like to include this into a script I have.


Regular Contributor
Posts: 195

Re: two level sort

Proc Sort data = test;

     by measurement_Y exp;


I think it is simple or i am not to understand your requirement...


Super Contributor
Posts: 334

Re: two level sort

Perhaps Im missing something but a a standard proc sort data=your table; by exp measurementY; run; should do what you seek.


Respected Advisor
Posts: 3,167

Re: two level sort

As Eric pointed out, there is fairly straightforward solution. However, if we understand you wrong, and what you mean happen to be: 1. EXP stay the order as is 2. Sort measurement_Y with EXP. Then we will probably need some Hash(). If you do mean the latter, please let us know.


New Contributor
Posts: 2

Re: two level sort


Thanks for your help.

I figured out how to do what I needed, was pretty straight forward as you said - Simply needed to have two arguments : By( :column1, :column2 )... Here's what I put in my script:

Data Table( "dt" ) << Sort(

  By( :Testing Comments , :MOR ),

  Order( Ascending, Ascending ));



Super User
Posts: 23,773

Re: two level sort

That looks like JMP code to me.

You may be better posting these types of question in a JMP forum instead. Smiley Happy

Ask a Question
Discussion stats
  • 5 replies
  • 1 like
  • 5 in conversation