Re: calculate area under the curve by integration then populate the result in a new column.Try checking out how the formula JMP generates does look like, it will most likely replace your time with :time so use different name for the variable and inside expression than columns in your data table (and possibly wrap it inside As Constant())
As Constant(
resp = Expr(a * a);
area = Integrate(resp, a, Col Min(:time), Col Max(:time));
)
Re: calculate area under the curve by integration then populate the result in a new column.What if the expression used by Integrate needs to be extracted from the formula in a column, for example to Integrate using a formula from a polynomial fit.
In the table below, the formula in the predictor column would use :time and :response. Is there a quick syntax to replace the column names with new variables?

Re: calculate area under the curve by integration then populate the result in a new column.I wouldn't use formulas if you just want to replicate same value to each row (in most cases it is better to use << Set Each Value in cases like this).
I'm not sure if there is any quick syntax to replace column names with new variables, but char+substitute+parse+expressions is one option
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
Compress File When Saved(1),
New Column("t", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, 4])),
New Column("r", Numeric, "Continuous", Format("Best", 12), Formula(:t ^ 2))
);
dt << New Column("i", Numeric, Continuous, << Set Each Value(
f = Eval Expr(Expr(Parse(Substitute(Char(Column(dt, "r") << get formula), ":", ""))));
Integrate(f, t, Col Min(:t), Col Max(:t));
));calculate area under the curve by integration then populate the result in a new column.In this example datatable, response is defined by fomula: response = time*time
I would like to calculate "area under the curve" (AUC) by integration using the fomula defined in the response column and the time range defined in the :time column, then populate the result in a new column in the datatable (by "populate" I mean all rows have the value of the calculated AUC).
I know I can use the following script to calculate the AUC, and the result of area is 41333.
resp = Expr (time * time);
area = Integrate (resp, time, 10, 50);
show (area);
However, when I tried to populate the AUC result (all rows have the value of 41333) in the :Integrate column by using formula:
Integrate( :response, :time, Col Maximum( :time ), Col Minimum( :time ) )
instead of populating the result 41333 , the formula calculated the result based on the defined value of : time in each row.
What is the correct way to write the formula so that the :Integrate column is populated with the result 41333?
I know I could use JSL to create a new datatable and then join the result but would prefer to do this within the same datatable.
Thanks!

Automation and Scripting