What JMP does with "To Data Table (All Objects)" when you have a By group is to basically create a separate report for each level of the By group and concatenate them all together within a vertical list box. ih is right that at least with JMP 13 there is a "Save-By-Group Script" option.
If you're not on 13 yet, then here's how I used to do it. Save a script to a data table the regular way (not for all objects, you'll just have to do more modifications to the script if you do). Then, edit the script to add a Group() statement within the Fit Model() statement.
For example, if saving the script to data table gets you something like this:
Fit Model(
Y( :Y ),
Effects( :X ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
Profiler( 0 ),
:Y << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Effect Details( 0 ), Lack of Fit( 0 ),
Sorted Estimates( 0 ), Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ),
Plot Residual by Predicted( 1 ), Plot Residual by Row( 1 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
Box Cox Y Transformation( 0 ), Show VIF( 1 )}
),
Where( :Group == "A" )
)
Delete the Where() clause and add a By() clause using the same column up by the other column specifications like so:
Fit Model(
Y( :Y ),
Effects( :X ),
By( :Group ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
Profiler( 0 ),
:Y << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Effect Details( 0 ), Lack of Fit( 0 ),
Sorted Estimates( 0 ), Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ),
Plot Residual by Predicted( 1 ), Plot Residual by Row( 1 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
Box Cox Y Transformation( 0 ), Show VIF( 1 )}
)
)
You should now reproduce the Fit Model report broken out by each level of By() as desired.
-- Cameron Willden