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

Make it easier to get results from reports via JSL

There are a lot of forum posts about how to get results from reports.  This could be made easier by adding some attributes to the display tree and defining two new functions that would do most of the work for the user.  I propose this syntax:

 

platform = Fit Model( ... );
platform << Get Result( "BIC", fit("NormalLassoAICValidation") );
//returns [0.683248]

Display Tree Attributes

  • Define a set of result types that is standard across all platforms. This will be a big list, but if two platform both report an adjusted R2, they should both use the same result type.
  • Add the result type to an attribute in the display tree for the column, cell, and/or anywhere else it is displayed, similar to the helpKey attribute for some platform outlineboxes.
  • Display the result type somewhere in the platform GUI, maybe in a hover label for everywhere it is displayed
  • Do something similar to flag outline boxes containing a fit created by the model (think '...fit with 6 components' in PLS or 'Normal Lasso with AICc Validation').  Here the attribute would be specific to the platform.

Functions

  • Create functions to get
    • The result values
    • The report element containing the result
    • The report element of the fit
    • The scriptable object of a fit
  • Call them like this
    • platform << Get Result("AdjustedRSquared") //Matrix or list of all Adjusted R Squared values
      platform << Get Result("AdjustedRSquared", fit("NIPALS_1")) //Matrix or list of all Adjusted R Squared values in fits with NIPALS_1
      platform << Get Result("AdjustedRSquared", fit("NIPALS_1"), fitnumber(1)) // Matrix or list of all Adjusted R Squared values in the first fit with NIPALS_1, should be exactly one value
      platform << Get Fit("NIPALS_1") //returns the scriptable object
      platform << Get Fit("NIPALS_1","object") //same
      platform << Get Fit("NormalLassoAICValidation","report",fitnumber(1)) //returns the report from the first fit with NormalLassoAICValidation
  • These functions these could be variations of wrappers around XPath:
    • platform << XPath("//NumberColBoxItem[@ResultType='AdjustedRSquared']")
      platform << XPath("//OutlineBox[@Fit='NIPALS_1']")
      platform << XPath("//OutlineBox[@Fit='NIPALS_1']") << Get Scriptable Object
      fm << XPath("//OutlineBox[@fit='NIPALS_1']//NumberColBoxItem[@ResultType='AdjustedRSquared']")

 

10 Comments
kayleewarren
Staff
Status changed to: Acknowledged

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

SamGardner
Level VII
Status changed to: Investigating
 
SamGardner
Level VII
Status changed to: We like it! (in the queue)

Thanks, @ih for the suggestion.  This is something we are interested in doing, but it will be a longer term project to bring this kind of functionality to JMP.  

hogi
Level XII

Similar topic for specific receivers in a plot, like x axis, y axis, x axis title, y axis title: Talking to Display boxes .

Seems that the Dispatch command knows that the X Axis Title is an X Axis title:

SendToReport( Dispatch( {}, "X title", TextEditBox, {Set Text( "xxx" )} ) )

can the user use this knowledge as well?

 

If not, please add a functionality like

current report() << XPath("//TextEditBox[@type='X  title']")


Besides
"Make it easier to get results from reports via JSL"
this will help us  to 
"Make it easier to create and manipulate reports via JSL"

 

Bernd2Heinen
Level III

thanks for the proposal and JMP development to take it into the queue. It is very difficult to extract details from the Outlier Screening report. It could be a good test case to extract variables and row with outliers.

hogi
Level XII

@Jonas_Rinne 
one of the topics we discussed today.

Jonas_Rinne
Staff

@hogi  Thanks for making me aware.

hogi
Level XII

@Sarah-Sylvestre 
the status of this wish was changed to "in the queue".

Will there be an easier way to address the individual axis boxes?

current report() << XPath("//TextEditBox[@type='X  title']")


 application case: 

Highlight bins in a distribution based on a column value to highlight bin migration 

There's nothing new to share right now, but I'll keep you updated. Thanks for checking in! 

ih
Super User (Alumni)
Super User (Alumni)

Glad to see this is 'in the queue'.  I just had another conversation where something like this proposed functionality would have been helpful, it has been a while since I tried pulling info out of a specific type of report so I really struggled to help a user access that info via script.  Coaching someone through writing XPath functions is not straight forward!