cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

JMP Wish List

We want to hear your ideas for improving JMP. Share them here.
Choose Language Hide Translation Bar
0 Kudos

Make all column functions able to take Column("Name") arguments to simplify column formula creation from JSL

What inspired this wish list request? 

The user interface in JMP has trained me to select columns and drag those to boxes, including the formula editor.  In the background those Col List Boxes generate strings that correspond to column names, but that is not how the dialogs present things., i'm dragging columns around.

pauldeen_0-1789654679720.png

The same behavior does not work in scripting:

dt = Open( "$SAMPLE_DATA/Cars.jmp" );
ColList = {};
For(i=1, i<=NCols(), i++,
	If(Column(i)<<GetDataType=="Numeric", InsertInto(ColList, Column(i)))
);
MeanExpr = NameExpr(Mean());
For(i=1, i<=NItems(ColList), i++,
	InsertInto(MeanExpr, ColList[i])
);
Eval(
	EvalExpr(
		dt << NewColumn("Average of numerics",
			Formula(
				Expr(NameExpr(MeanExpr))
			)
		)
	)
);

This example generates an invalid list of Column("Name") objects which the Mean() function cannot handle. This makes working with column formula's much more difficult from a new scripter perspective than it needs to be.

See this disucssion: https://community.jmp.com/t5/Discussions/How-to-create-an-average-column-with-JSL-based-on-random-co...

See support case:  00345202

What is the improvement you would like to see? 

Extend all column formula functions to accept objects of type Column("Name") and internally convert them to indexable column type of style :"Name"n. That way even though technically it is a different object, it does match the UI style of dropping column's in.

pauldeen_1-1789654714335.png

All functions listed here should be augmented to accept column() type.

Why is this idea important? 

It makes JSL and UI logically working the same, providing a lower barrier to entry for new scripters.