大家好,
我有這個數據表(附後),我正在嘗試使用 jsl 腳本對其進行分析。 我還沒走多遠... 我知道“Col Moving Average”函數,但無法讓它滿足我的需求。 我會聽取您的意見!
該腳本應該
1. 按“組”列對“分鐘”列進行排序
2. 按“組”計算“讀數”的滾動斜率。
輸出應該是兩個添加的列:
1. 滾動斜率,但僅適用於前面有足夠多行來計算滾動斜率的行。 例如,如果窗口大小設置為 5,則滾動坡度應僅從第 5 行開始。
2.滾動窗口的兩個邊緣時間點之間的距離除以2。 例如,如果當前窗口的第一個和最後一個時間點為3和8,則該值應為2.5。
謝謝你!!
如果我理解你所說的滾動坡度的意思,這裡有一個腳本可以做你正在尋找的事情以及如何製作腳本背後的秘密。
腳本:
dt = Data Table( "Input data" ) << Sort(
By( :Group, :Minutes ),
Order( Ascending, Ascending ),
Output Table( "Sorted Input Data.jmp" )
);
dt << New Table Variable ("window", 5);
dt << new column ("Rolling Slope", numeric, set formula (If( Row() > window,
(:Reading + Lag( :Reading )) / 2,
.
)));
秘密(如果你已經知道的話可以跳過這個:) :
如果您知道如何在 JMP 的 GUI 中執行操作,則不需要大量的腳本編寫知識來創建執行操作的腳本,因為您可以大多只需從日誌中復制/粘貼即可。 此腳本的三個示例:
1. 排序。 我首先使用 Tables...Sort 命令對數據表進行排序,然後查看保存到新數據表中的“Source”腳本,並將其複制/粘貼到新的腳本窗口中(我確實添加了“dt =”開頭加分號,結尾加分號,因此您必須具備一點腳本編寫知識)。

2.我使用GUI添加了一個新的表變量(表上的紅色三角形,新表變量),然後我查看日誌並無恥地複制腳本,並將其粘貼到我的腳本窗口中。 我用對“dt”的引用替換了第一部分。

3.我輸入“dt <<新列(“滾動斜率”,數字,設置公式(xxx));”,然後我在GUI中創建了公式,並將其複制/粘貼以替換“滾動斜率”,數字,設置公式(xxx));代碼。

話雖如此,這是一個鏈接學習腳本的優秀免費課程。