JSL 腳本中的資料過濾器運作緩慢我正在嘗試建立 JSL 腳本,該腳本將利用資料過濾器並在「ITEM_NAME」列中選擇約 180 個感興趣的測試並建立新表。當我使用數據過濾器並手動運行它時,它沒有任何延遲。但當我嘗試自動化該過程時,建立新表需要大約 15 分鐘。我該怎麼做才能讓它更有效率地運作?
Open( "$DOCUMENTS/test.jmp" );
ref10 = Data Table( "ABC" ) << Select Where(
:ITEM_NAME == "test1" |
:ITEM_NAME == "test2" |
:ITEM_NAME =="test3" |
:ITEM_NAME ==
...
"test180"
) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
自動化和腳本回覆:JSL 腳本中的資料過濾器運作緩慢嘗試一下
Open( "$DOCUMENTS/test.jmp" );
items={"test1" "test2""test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(ITEMS) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
回覆:JSL 腳本中的資料過濾器運作緩慢謝謝你,吉姆。由於某種原因,我收到了錯誤(可能與語法有關)。
回覆:JSL 腳本中的資料過濾器運作緩慢現在似乎運行得更快了,大約需要 3-4 分鐘才能完成,但如果我手動執行的話,速度就不會那麼快了。必須對程式碼進行一些修改以避免錯誤:
Open( "$DOCUMENTS/test.jmp" );
items={"test1", "test2", "test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(items, ITEM_NAME) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
回覆:JSL 腳本中的資料過濾器運作緩慢我的錯誤......當時已經很晚了......
回覆:JSL 腳本中的資料過濾器運作緩慢如果沒有看到/理解你的數據(不應該這樣做),就很難理解為什麼你的腳本會這麼慢。
您可以嘗試使用<< Get Rows Where and Subset 而不是選擇那些行。在此範例中,我嘗試使用連結子集和無標題輸出表名稱複製資料視圖
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
items = {12, 13, 14, 15};
rows_of_interest = dt << get rows where(Contains(items, :age));
dt_subset = dt << Subset(Rows(rows_of_interest), Selected Columns(0), Link to original data table(1), Output Table("Untitled"));
回覆:JSL 腳本中的資料過濾器運作緩慢謝謝你,賈莫。您的解決方案將處理時間縮短至約 1 分 35 秒。
我使用的 JMP 表有 13 列和 13127825 個原始資料。輸出檔有 1274416 個原始資料。
回覆:JSL 腳本中的資料過濾器運作緩慢最有可能的是可以進行最佳化,但如果該速度足以滿足您的應用程式的需求,我就不必擔心這些。