回复:通過積分計算曲線下面積,然後將結果填充到新列中。嘗試檢查 JMP 生成的公式看起來如何,它很可能會用 :time 替換您的時間,因此對變量和內部表達式使用與數據表中的列不同的名稱(並可能將其包裝在 As Constant() 中)
As Constant(
resp = Expr(a * a);
area = Integrate(resp, a, Col Min(:time), Col Max(:time));
)
回复:通過積分計算曲線下面積,然後將結果填充到新列中。如果 Integrate 使用的表達式需要從列中的公式中提取,例如使用多項式擬合中的公式進行 Integrate,該怎麼辦。
在下表中,預測器列中的公式將使用 :time 和 :response。 有沒有一種快速語法可以用新變量替換列名?

回复:通過積分計算曲線下面積,然後將結果填充到新列中。如果您只想將相同的值複製到每一行,我不會使用公式(在大多數情況下,在這種情況下最好使用 << Set Each Value)。
我不確定是否有任何快速語法可以用新變量替換列名,但 char+substitute+parse+expressions 是一種選擇
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));
));通過積分計算曲線下面積,然後將結果填充到新列中。在此示例數據表中,響應由公式定義:響應 = 時間*時間
我想通過使用響應列中定義的公式和 :time 列中定義的時間範圍進行積分來計算“曲線下面積”(AUC),然後將結果填充到數據表中的新列中(通過“填充“我的意思是所有行都有計算出的 AUC 值)。
我知道我可以使用下面的腳本來計算AUC,面積的結果是41333。
resp = Expr (time * time);
area = Integrate (resp, time, 10, 50);
show (area);
但是,當我嘗試填充 AUC 結果時(所有行的值為 41333)在:整合列中通過使用公式:
積分(:響應,:時間,列最大值(:時間),列最小值(:時間))
該公式不是填充結果 41333 ,而是根據每行中 : time 的定義值計算結果。
編寫公式以便 :Integrate 列填充結果 41333 的正確方法是什麼?
我知道我可以使用 JSL 創建一個新的數據表,然後加入結果,但更願意在同一個數據表中執行此操作。
謝謝!

自動化和腳本編寫