表處理 JMP14 的腳本你好。您能幫我編寫一個腳本,使用原始表並從中建立一個新表嗎?原始表每個樣本溫度測量有兩行。在輸出表中,每個樣本僅使用一行,並計算兩次測量之間的天數和溫度增量。
自動化和腳本編寫視窗回覆:JMP14表處理腳本您能否以 JMP 表的形式提供範例數據,以便我們不必從圖像創建它(格式可能會對腳本產生很大影響)
回覆:JMP14表處理腳本您可以新增兩個公式列來計算每個樣本的最大值 - 最小值(溫度和日期):

或執行下面的腳本來取得帶有公式列的範例表。
New Table( "Example",
Add Rows( 8 ),
New Column( "Sample",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 2, 2, 3, 3, 99, 99] )
),
New Column( "Temperature",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [199, 210, 201, 217, 200, 215, 199, 220] )
),
New Column( "Temp Diff",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Col Maximum( :Temperature, :Sample )
-Col Minimum( :Temperature, :Sample )
)
),
New Column( "Date (ISO 9601 format)",
Numeric,
"Continuous",
Format( "yyyy-mm-dd", 10 ),
Input Format( "yyyy-mm-dd" ),
Set Values(
[3795552000, 3798576000, 3795552000, 3798748800, 3795552000, 3798662400,
3795552000, 3798921600]
)
),
New Column( "Date Diff",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Date Difference(
Col Minimum( :"Date (ISO 9601 format)"n, :Sample ),
Col Maximum( :"Date (ISO 9601 format)"n, :Sample ),
"Day"
)
)
)
)
然後快速總結將為您提供您想要的表格:

回覆:JMP14表處理腳本嗨,賈莫。感謝您的支持。請查附件。
回覆:JMP14表處理腳本嗨保羅。謝謝你的想法。如果溫度增量有時為負值,而這對我來說至關重要,那麼這種方法是否有效?
回覆:JMP14表處理腳本好的。我檢查了,它不起作用。我們可以使用其他公式來選擇較晚日期和較早日期的溫度測量值嗎?
回覆:JMP14表處理腳本您可以使用以下公式
:Temperature - (Col Moving Average(:Temperature, 1, 1, 0, :Sample) * 2 - :Temperature)
和
(:Date - (Col Moving Average(:Date, 1, 1, 0, :Sample) * 2 - :Date)) / In Days(1)
來計算增量。

然後建立不包含 0 行的新表(該表中不包含公式)或刪除公式並刪除這些 0 行。

我認為這個腳本應該適用於 JMP14(我無法測試它,因為我無法存取它)
Names Default To Here(1);
dt = Open("$DOWNLOADS/source table.jmp");
dt << New Column("Time Delta", Numeric, "Continuous", Formula(
:Temperature - (Col Moving Average(:Temperature, 1, 1, 0, :Sample) * 2
- :Temperature)
));
dt << New Column("Temperature Delta", Numeric, "Continuous", Formula(
(:Date - (Col Moving Average(:Date, 1, 1, 0, :Sample) * 2 - :Date)) /
In Days(1)
));
dt << Select Where(:Temperature Delta == 0) << Invert Row Selection;
dt_subset = dt << Subset(
Copy formula(0),
Selected Rows(1),
Columns({"Sample", "Time Delta", "Temperature Delta"}),
Output Table("Deltas")
);
dt << Clear Select;回覆:JMP14表處理腳本謝謝賈莫。讓我嘗試一下。
回覆:JMP14表處理腳本Jarmo,非常感謝您的解決方案。這是工作。
但我還有兩個問題:
1. 您能解釋一下移動平均線計算公式的作用嗎?我只是想了解你的方法的邏輯...
2.我只是注意到,如果第一行使用較晚的日期,它會給出負的時間增量...時間增量應始終為正。如果我從一開始就對來源表進行排序以便您的腳本正常工作,它會起作用嗎?
回覆:JMP14表處理腳本排序應該有效,但如果是這種情況,您也可以考慮其他公式(如果順序總是較晚 - 較早)。我使用 Col 移動平均線,因此我可以存取該組較早行的值。