cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Have your say in shaping JMP's future by participating in the new JMP Wish List Prioritization Survey
Choose Language Hide Translation Bar
Yngeinstn
Level IV

From Interpolation to Finding Closets Value

I received some help long ago with trying to interpolate a -1 db Compression which worked flawlessly however the customer has changed their minds on the who interpolation thing. Now they just want the input value closest to the -1 db compression and then using that apply a spec limit to the Pout. I am looking for some assistance in trying to determine this point. Attached is a data table that has the raw data.

 

Grouping would be {"wafer_number", "RowCol", "input"} . There are 36 readings for each input at different compression values. I only need the closest to -1.

 

Thanks in advance

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

Re: From Interpolation to Finding Closets Value

Hi,

 

If you want to do this in the present table, you can add a formula column with the following formula, which compares each row's distance to -1  ( abs ( :compression -  (-1))), which is (abs(:compression + 1)), to the minimum value found in the group.

 

Abs( :Compression + 1 ) == Col Minimum( Abs( :Compression + 1 ), :wafer_number, :RowCol, :input )

Thus, the rows in this column equaling 1 are the rows you want... you could select and subset them, etc.

 

If you want to directly subset without creating a new column, and don't mind using JSL, you could use this:

 

Names Default To Here(1);

dt = current data table();

dtSub = dt << subset(
	selected columns(0), 
	rows(dt << get rows where(Abs( :Compression + 1 ) == Col Minimum( Abs( :Compression + 1 ), :wafer_number, :RowCol, :input )))
);

Cheers,

Brady

 

View solution in original post

2 REPLIES 2

Re: From Interpolation to Finding Closets Value

Hi,

 

If you want to do this in the present table, you can add a formula column with the following formula, which compares each row's distance to -1  ( abs ( :compression -  (-1))), which is (abs(:compression + 1)), to the minimum value found in the group.

 

Abs( :Compression + 1 ) == Col Minimum( Abs( :Compression + 1 ), :wafer_number, :RowCol, :input )

Thus, the rows in this column equaling 1 are the rows you want... you could select and subset them, etc.

 

If you want to directly subset without creating a new column, and don't mind using JSL, you could use this:

 

Names Default To Here(1);

dt = current data table();

dtSub = dt << subset(
	selected columns(0), 
	rows(dt << get rows where(Abs( :Compression + 1 ) == Col Minimum( Abs( :Compression + 1 ), :wafer_number, :RowCol, :input )))
);

Cheers,

Brady

 

Yngeinstn
Level IV

Re: From Interpolation to Finding Closets Value

@brady_brady 

 

Thank you very much for your help. I was sort of on the right track with the :Compression + 1 but didn't consider the absolute value. Works like a charm.