e.g.
plt = fit model(<PARAMS>); rpt = plt << report; rpt(TableBox[7]) << make data table();</PARAMS>
but the trouble is if JMP changes or a singularity occurs TableBox[7] changes identity and is no longer the tablebox I'm after for a data table, would prefer e.g.
crossvalidation_table = rpt(TableBox["Crossvalidation"]) << make data table();
-- if I'm not mistaken, directly assigning the table to a variable as in the e.g. is also a new feature request.
I forgot to comment on your
@benjaminbuck wrote:
crossvalidation_table = rpt(TableBox["Crossvalidation"]) << make data table();
-- if I'm not mistaken, directly assigning the table to a variable as in the e.g. is also a new feature request.
Respectfully, I think you are mistaken. In your example above, assuming the correct syntax as I explained in my earlier post, the variable crossvalidation_table will have a reference to the data table created by the Make Data Table messge. Perhaps I've misunderstood this part of your request though.
A TableBox doesn't have a name, but the OutlineBox does. So, the best practice is to index off of the name of an Outlinebox. In JMP 14, when you right click on a tablebox and Make Into Data Table the resulting data table has a Make into Data Table script that shows how to use the OutlineBox by name to get to the TableBox.

dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Validation",
Character,
"Nominal",
Formula( If( Random Uniform() > 0.2, "0", "1" ) ),
Value Labels( {"0" = "Training", "1" = "Validation"} ),
Use Value Labels( 1 ),
);
fm = Fit Model(
Validation( :Validation ),
Y( :weight ),
Effects( :age, :sex, :height ),
Personality( "Standard Least Squares" ),
Set Alpha Level( 0.1 ),
Emphasis( "Effect Leverage" ),
Run(
:weight << {Summary of Fit( 1 ), Analysis of Variance( 1 ), Parameter Estimates( 1 ),
Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ),
Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ),
Box Cox Y Transformation( 0 )}
)
);
rpt = Report( fm );
rpt[Outline Box( "Response weight" )][Outline Box( "Whole Model" )][
Outline Box( "Crossvalidation" )][Table Box( 1 )] << Make Into Data Table;
The script that JMP puts there uses the whole tree of outline boxes. If you're sure there's only one outline box with the name you're interested in you don't need the whole tree:
rpt[Outline Box( "Crossvalidation" )][Table Box( 1 )] << Make Into Data Table;