如何根據建立子集資料表時所使用的資料篩選條件重新命名該表我參考了這篇文章(已解決:如何將資料篩選器 () 選擇的資料匯入新資料表 (使用 JSL)?- JMP 使用者社群;https: //community.jmp.com/t5/Discussions/How-to-get-data-selected-by-Data-Filter-into-a-new-data-table/mp/64232323232323 )中的程式碼,可以透過資料篩選器選擇特定的年齡和性別組合,並產生一個名為「大班級子集」的子集表,其中只包含所需的行。但是,我希望使用資料篩選器中選取的選項來命名或重新命名資料檔案。例如,如果我選中年齡 13 歲且性別為女性,我希望自動將表命名為「年齡 13 歲 性別 女 大班級子集」或類似名稱。遺憾的是,我不知道如何從資料篩選器或腳本中取得這些值。
請問有人能幫我指出正確的函數、選項或文法嗎?
我想我可以從結果資料本身中提取它們,但我相信一定有辦法在「源頭」儲存這些值。
JMP 17
謝謝你!
自動化和腳本編寫回覆:如何根據建立子集資料表時所使用的資料篩選條件重新命名該表在不清楚您希望名稱如何顯示的情況下,我建議您先了解一下“獲取 WHERE 子句”,您可以將其傳遞給資料過濾器,它會返回類似這樣的結果。

"Select Where((:age == 12 | :age == 14) & (:sex == \!"F\!" | :sex == \!"M\!"))"
然後您可以提取
(:age == 12 | :age == 14) & (:sex == \!"F\!" | :sex == \!"M\!")
並以此作為名稱
回覆:如何根據建立子集資料表時所使用的資料篩選條件重新命名該表謝謝你的建議,Jarmo。我在其他腳本中也用過「選擇條件」功能。但是,我需要資料篩選器的互動功能,因為每次運行結果都不一樣。我無法像你建議的那樣硬編碼特定選項——除非我誤解了你的意思?
至於名字,只要包含所需信息,任何格式都可以。一旦我能將年齡和性別資訊存入某個變數或物件進行操作,名字的格式我就不糾結了。
回覆:如何根據建立子集資料表時所使用的資料篩選條件重新命名該表使用 << Get Where 子句取得的格式是其中一個選擇。您也可以根據篩選器中使用的列從結果表中提取值(雖然可以從原始表中提取,但從結果表中提取更容易,速度也可能更快)。
回覆:如何根據建立子集資料表時所使用的資料篩選條件重新命名該表以下範例示範如何根據資料篩選器中的設定建立資料表的子集,新資料表的名稱即為用於建立該資料表的 WHERE 子句的名稱。如果篩選器中存在選擇項,則會在關閉資料篩選器時建立該子集。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw = New Window( "Select Parameters",
//<
<MODAL></MODAL> theClause = obj << Get Where Clause;
If( theClause != "",
dt << subset(
selected columns( 1 ),
selected rows( 1 ),
output table( Substr( theClause, 14, Length( theClause ) - 15 ) )
)
);
);
回覆:如何根據建立子集資料表時所使用的資料篩選條件重新命名該表@txnelson我覺得你掉線了
theClause = obj << Get Where Clause;
在 If 之前。
使用正規表示式進行解析(不確定是否在所有情況下都有效)
tbl_name = Regex(theClause, "Select Where\((.+)\)", "\1")
回覆:如何根據建立子集資料表時所使用的資料篩選條件重新命名該表是的,我修改了原來的條目。
回覆:如何根據建立子集資料表時所使用的資料篩選條件重新命名該表非常感謝!它完美運行。我真的很感激您講解如何正確使用 Get Where 子句。我明白 Jarmo 的建議是正確的,但我嘗試時卻一直出錯。我看到您透過移除模態模式並將其包裹在處理視窗關閉的程式碼中解決了這個問題。我學習得比較慢,但我正在學習。再次感謝!