Choose Language Hide Translation Bar
Community Manager Community Manager

Slope and Intercept Collector

Here is an example of a JMP add-in that will calculate the slope and intercepts for a given Y, response and X, regressor variables.  Optionally you may include one or more by variables.


The defaults are as follows:

  • Number of points (# Pts) is set to 10
  • Increment by is set to 5
  • Start at Row is set to 1


11954_Screenshot 2016-07-06 14.44.39.png


Using the data table from the sample data and the selections noted above will yield the following output.

A new data table is created with the name of the original data table appended to "Slope Estimates" forming the name in this example as "Slope Estimates".


//Get table name

dtfn = dt<< Get Name;

dtn = Word(1, dtfn, ".");


// Create name for new table


tbln = "Slope Estimates " || dtn;


One row for each slope and intercept calculation is added to the new data table.  It will also add which rows were used in the calculation and the starting parameters for "# Pts", "Increment By", "Start at Row" and any variables cast into roles.


Because the table takes advantage of the new data type in JMP 12 called Expression to store the rows matrix it is only compatible with JMP 12 or newer.

12949_Screenshot 2016-10-07 19.06.31.png


The add-in demonstrates the use of a custom launch to reset the defaults or to recall the previous values the last time it was run during the current JMP session.


A great example of the creation of a custom launch window.



*********************** Updated **********************************

Version 1.1:

  1. Added column to store X values used in calculations
  2. Added column to store Y values used in calculations

Version 1.2: 

  1. Modified loop variable for by variables from

    loops = Round(NRows(allrows_byLvl) / npts ) to loops = Round(length(allrows_byLvl) / incby )

  2. modified startrow and endow from 

    incStartrow# = incStartrow# + incby -1 to incStartrow# = incStartrow# + incby

    incEndrow# = incEndrow# + incby - 1 to incEndrow# = incEndrow# + incby


Thank you Stanley. This has been extremely valuable.

Would it be possible to modify the add-in and add a column which would have the corresponding row values (data format being an expression just like the row numbers) associated with the calculation in addition to the row numbers used for calculating the slope and interecept?

Thanks again..


I'll take a look and post an updated version of the add-in as soon as possible.

Thanks for your interest in the add-in.


Thanks Stan - I greatly appreciate your help..

Hello Stan,

Any updates on the modified add-in? I'll be on the lookout.



I'll post an update later this week.

Thank you for your patience.



Thanks Stan - This is exactly what I was looking for. This revised add-in will help automate an otherwise very tedious process that I was using in the past.


Hi Stan, I am trying to slice my time series data and calculate slope for each slice. Because I have a high dimension data set, I imagine your tool might be extremely handy and I won't have to recreate it. It's just that I am running into issues.


I am getting this error where it says "matrix must be non-singular in access or evaluation of 'Inv', Inc/*###*/(x`*x)


Do you have any hints? Also, is there any way I can get my hands on the script in the background to modify to my specific needs?

hmm, i'm getting an error that this wont' work with JMP11. any thoughts?


Unfortunately, because the add-in is using a new data type (Expression) introduced in JMP 12 it is only compatible with versions 12 or newer.

I just noticed there is a couple of errors in the byCalcExpr function.


Loops are currently defined as:

loops = Round(NRows(allrows_byLvl) / npts);

Should be changed to:

loops = Round(length(allrows_byLvl) / incby );


and increments of start and end rows should not be subtracted 1. So change the following:

incStartrow# = incStartrow# + incby -1;
incEndrow# = incEndrow# + incby - 1;


incStartrow# = incStartrow# + incby;
incEndrow# = incEndrow# + incby ;

Hi @kaks ,

I'll take a look at the changes you suggested and modify accordingly.

Thanks again for your time and support.