cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar

fast way to trigger one-time formula evaluation

☐ cool new feature
☐ could help many users!

☐ removes a „bug“

☑ nice to have

☐ nobody needs it

 

 

It would be great to have the opportunity to trigger the evaluation of a formula with "suppress eval" just "once":

 

Formulas using  "selected()" or "excluded()" are very useful to highlight selected data or to remove excluded data from lists, calculations and displays.

On the other hand, when working with large data sets, the usage of such formulas leads to many waiting times - because any change of the row state triggers a re-evaluation of the formulas.

 

A compromise: default option for such formula: suppress eval

and an option to trigger the formula evaluation just once, e.g. via right click context menu of the "+" formula sign.


related wish:
https://community.jmp.com/t5/JMP-Wish-List/fast-way-to-enable-disable-formula-calculations/idi-p/547... 
(to enable and disable "suppress eval")

HolgerSp_0-1665843146689.png

 

more wishes submitted by  hogi_2-1702196401638.png

9 Comments
Status changed to: Acknowledged

@hogi - Thank you for your suggestion! We have captured your request and will take it under consideration.

SamGardner
Staff
Status changed to: Needs Info

@hogi thanks for your request.  Can you provide more detail on the situation where this feature would help you?  An example data table would be helpful.  You can DM directly if you want to share privately.  

hogi
Level XI

Hi @SamGardner .

Thank you for your interest in the details of this wish.

Sorry, I thought that the wish already describes  the idea quite detailed.

 

To add some information:

The Problem starts with some cool features of Jmp:

1) there are many webinars and talks which show the power of columns which use selected(), e.g. this great video by @brady_brady :
Special Formula Columns 

 

2) Col Mean and all the other Column Aggregation Formulas about the information that rows are excluded - such rows are just included in the calculation.
Therefore, the user has to take care on his own and add a excluded() in the formula:
JMP10: Col Max() and Col Min() functions returned the data from excluded row 

 

So, where is the problem?

If you have several such column formulas with selected() and excluded() in your table and if your table has more rows than the big class example data table - it's no fun anymore to work in JMP.

You are just watching the log on the bottom of the data table to check which column is updated .

 

Sometimes, I would prefer to define on my own when columns need an update.

e.g. on days when I don't need the information from those columns, when I just want to work on the table, with other columns - without being blocked by all these formula column updates.

 

The solution: deactivate some column formulas which you don't need at the moment via: suppress eval

But then it's quite to trigger a new calculation. One has to go to the column settings, remove the suppress eval, wait till the column calculations are finished, go again to the column settings and set suppress eval again.

 

This is why I posted the 2 wishes:

- a fast way to enable and disable formula eval in general.

- a one-time trigger to evaluate a column formula calculation once (instead of remove suppress eval, wait long enough, add suppress eval again)


So, it would be great if you could add a right click context menu to the plus sign of a formula column and provide these 2 functions:

hogi_0-1670602913557.png

 

hogi
Level XI

Is this information enough to decide if the feature is worth to be added?

SamGardner
Staff
Status changed to: Investigating

Thanks for the additional information @hogi .  We will investigate this further.  

hogi
Level XI
Chris_Rodrigues
Level III

You can do this with a script attached to your data table.  Name it "evaluate selected formulas" and put it near the top of the list for easy access.  When you need to eval columns, select one or multiple columns and then run this script:

 

Names Default To Here(1);
dt = Current Data Table();
colsel = dt << Get Selected Columns();

For(i = 1, i <= N Items(colsel), i++,
	col = Column(dt, colsel[i]);
	
	frm = col << Get Formula;
	
	If(!Is Empty(frm),
		v_start_tick_seconds = tick seconds();
		
		col << Eval Formula;
		
		v_end_tick_seconds = tick seconds();
		v_runtime_seconds = v_end_tick_seconds - v_start_tick_seconds;

		col << Set Property("TimeToEval", v_runtime_seconds);
	);
);

You can make a similar script to suppress or un-suppress formula eval on individual columns:

Names Default To Here(1);
dt = Current Data Table();
colsel = dt << Get Selected Columns();

For(i = 1, i <= N Items(colsel), i++,
	col = Column(dt, colsel[i]);
	col << Suppress Eval(0);
);

This has been my workaround for the deficiencies in JMP's formula management for a few years now.  It helps a lot.  It would be nice if this was a built-in feature easily accessible through right-click menus.

 

However, there is still a big shortcoming to this method.  Formula columns may have inter-dependencies and these are completely ignored when the formulas are evaluated in this manner.  If you select a block of columns and run the eval script, they are evaluated in sequential order, top-to-bottom, with no regard for dependency.  I don't have a good solution for this, except to make sure to manually select all of the formula columns that are co-dependent, and run the script multiple times until the values stop changing.

hogi
Level XI

Thanks @Chris_Rodrigues  for the suggestion.

You are right, the results could look funny if you evaluate the columns step by step from left to right. I O read that Jmp really checks for the optimal sequence.


you could activate the evaluation of the selected formulas at once - then Jmp orchestrate which column to calculate after which. Then after

dt << run formulas()

deactivate the evaluation for the selected columns.

hogi
Level XI

after bugfixing the issue with the excluded() states in Jmp18 (What makes the formula evaluate over and over? )  this wish gets less important