Maximum value of several variable columns to specific rowsHi all,
How to create a formula column to find the maximum of several variable columns to specific rows
colList = dt << get column names;<BR />colList = remove( colList, 1,2);
Show( colList );
New Column( "Column 15",
Numeric,
Continuous,
Format( "Best", 8 ),
Formula( Maximum(colList[1]), colList[2],colList[3] ) ),
Set Selected
);
Re: Maximum value of several variable columns to specific rowsSee the following Discussion here.
Re: Maximum value of several variable columns to specific rows@txnelson I am running across a similar issue, but instead of knowing my column length, like op knows his length of 3. How do I modify it so it will do the max of n length?
Re: Maximum value of several variable columns to specific rowsDoes the sample code that I provided work, just as I have provided it? It should work without change.
The error statement indicates that you are having a problem with the recognition of the word "Name" . Could you provide a sample of your data, and your script that is failing?
Re: Maximum value of several variable columns to specific rowsSorry, but it's still not working (solution 2).
My coulmns names - Date, format -01/30/2019 .
Thx.


Re: Maximum value of several variable columns to specific rowsHere is my script, with the only change that it is pointing to the the SAMPLE data table "Blood Presure".

Names Default To Here( 1 );
dt = Open("$SAMPLE_DATA/Blood Pressure.jmp");
colList = dt << get column names;
colList = Remove( colList, 1, 2 );
Show( colList );
New Column( "Column 15",
Numeric,
Continuous,
Format( "Best", 8 ),
Formula(
Max(
As Column( colList[1] ),
As Column( colList[2] ),
As Column( colList[3] )
),
Set Selected
)
);
Eval(
Substitute(
Expr(
New Column( "Column 16",
Numeric,
Continuous,
Format( "Best", 8 ),
Formula(
Max( __col1__, __col2__, __col3__ ),
Set Selected
)
)
),
Expr( __col1__ ), Parse( ":" || Char( colList[1] ) ),
Expr( __col2__ ), Parse( ":" || Char( colList[2] ) ),
Expr( __col3__ ), Parse( ":" || Char( colList[3] ) )
)
);
The issue may be that you have complex column names, that have characters in them that JMP is trying to do calculations on. If that is the case, you need to change the Substitution to:
Expr( __col1__ ), Parse( ":Name\!"(" || Char( colList[1] ) || "\!")" )
Of course, change if for all 3 Substitutions
Re: Maximum value of several variable columns to specific rowsThx mate for your quick answer.
Please, see the answers below
* The first solution (Colmun 15) it's working good
* The second (Colmun 16) not working very well

Re: Maximum value of several variable columns to specific rowsBelow is a script that calculates what you want two different ways. The first, is a correction to your code. Some "(" had to be moved since they were not in the correct place, and also, the As Column() function had to be added to tell JMP to treat the colList[] values as columns. While this code works, if you ever quit JMP and then come back into JMP, the formula would not work, because, there would not be a list called "colList" to use in the formula. So what you really need to use is what I have put in as a new column, "Column 16". Run the script on your data, and then look at the actual formulas for the two columns, and you will see the difference.
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names;
colList = Remove( colList, 1, 2 );
Show( colList );
New Column( "Column 15",
Numeric,
Continuous,
Format( "Best", 8 ),
Formula(
Max(
As Column( colList[1] ),
As Column( colList[2] ),
As Column( colList[3] )
),
Set Selected
)
);
Eval(
Substitute(
Expr(
New Column( "Column 16",
Numeric,
Continuous,
Format( "Best", 8 ),
Formula(
Max( __col1__, __col2__, __col3__ ),
Set Selected
)
)
),
Expr( __col1__ ), Parse( ":" || Char( colList[1] ) ),
Expr( __col2__ ), Parse( ":" || Char( colList[2] ) ),
Expr( __col3__ ), Parse( ":" || Char( colList[3] ) )
)
);Re: Maximum value of several variable columns to specific rowsI appreciate your feedback.