從行選擇中設定規格限制列屬性你好社區,
此表中的範例

我有一個表,產生 5 個人的姓名列。 所有人都有特定的規格限制,即 HighL 和 LowL 行。 其中一些從未有 HighL 和 LowL 或兩者的規格限制。 但我想對那些有上限和下限的人施加規格限制。 想像我總共有 100 個人,他們有隨機的規格限制。
有人可以幫我編寫一個腳本,可以自動設定第 3 行和第 4 行(所有列名稱中的 HighL 和 LowL)的規格限制。 只需輸入規格上限和下限即可,不需要目標。
拜託…我無法手動執行此方法,因為方法太多了。
自動化和腳本編寫回覆:從行選擇中設定規格限制列屬性如果您將 HighL 重新命名為 USL,將 LowL 重新命名為 LSL,您可能已經可以使用管理規格限制來執行此操作。


從限製表加載

參考同表


如果您想看到它們,請從紅色三角形新增顯示限製到所有

最後按儲存到列屬性

(我的第 2 列沒有添加規格限制,因為它的 LSL 高於 USL)
回覆:從行選擇中設定規格限制列屬性先生,在我的桌子上,我有一些知名人士不需要對 USL/LSL 或兩者進行規格限制。 請參考我下面的圖。

您知道如何停用或刪除單一金鑰或腳本中的所有數字,這些數字只能對除 LSL (-9.9999e+100) USL(9.9999e+100) 之外的數字施加規格限制
您也可以為我寫一個腳本,可以將所有這些 HighL 和 LowL 重新命名為 USL 和 LSL,並將所有規格限制自動放入除無窮大規格之外的所有這些名稱中。
我將不勝感激這個幫助,
回覆:從行選擇中設定規格限制列屬性如果您無法將這些值更改為缺失,我很可能會:
- 建立包含 HighL 和 LowL 行以及所有列的子集
- 使用 recode 將 HighL 和 LowL 更改為 USL 和 LSL
- 使用重新編碼將 9.99e100 值變更為缺失值(或其他方法也可以)
- 使用建立的子集作為限製表
- 設定限制後,關閉子集
JMP 很可能可以使用增強型日誌/工作流程建構器為您編寫大部分腳本。 它可能無法編寫從表中獲取限制然後從管理限制將它們設置為列屬性的過程的腳本,但腳本索引確實有這樣的範例。 這是從限製表加載的範例

回覆:從行選擇中設定規格限制列屬性你好,先生,
我已經創建了一個腳本重新編碼來重命名 USL 和 LSL。 但我還是不知道如何改變它的值9.99e100 缺少行選擇而不是列選擇。 我嘗試了很多次還是失敗。 我還堅持編寫腳本來設定所有列屬性的所有規格限制。 請幫我。
// Set Auto Spec Limit
Names Default To Here( 1 );
dt = Current Data Table();
// Recode column: Spec Limit
Local( {dt},
dt = Current Data Table();
dt << Begin Data Update;
dt << Recode Column(
dt:Spec Limit,
{Map Value( _rcOrig, {"HighL", "USL", "LowL", "LSL"}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Column( :Spec Limit )
);
dt << End Data Update;
);
// Recode row: USL
Local( {dt},
dt = Current Data Table();
dt << Clear Select << Select Rows( [2] );
selRows = dt << Get Selected Rows;
dt << Begin Data Update;
dt << Recode Selected Rows(
dt:USL,
{Map Value( _rcOrig, {"9.9999e+100", "."}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Row (:USL)
);
dt << End Data Update;
);
// Recode row: LSL
Local( {dt},
dt = Current Data Table();
dt << Clear Select << Select Rows( [3] );
selRows = dt << Get Selected Rows;
dt << Begin Data Update;
dt << Recode Selected Rows(
dt:USL,
{Map Value( _rcOrig, {"-9.9999e+100", "."}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Row (:LSL)
);
dt << End Data Update;
);下面我附上了使用此腳本的範例資料表。
回覆:從行選擇中設定規格限制列屬性重新編碼適用於列,而不適用於行。名為「Recode Selected Rows」的腳本索引中沒有此類訊息。 要執行您似乎正在嘗試執行的操作,您需要
- 選擇有問題的行
- 將所選行子集到新資料表中
- 對子集資料表中要重新編碼的每一列執行重新編碼 JSL。
- 使用更新平台將資料從子集化表移回原始資料表。
回覆:從行選擇中設定規格限制列屬性嗨吉姆,謝謝你的幫忙。 我設法在特定列中重新編碼特定名稱。 但是如何編寫一個可以在我的表中的整列中重新編碼的腳本呢? 我實在不知道怎麼寫。 是不是每個名字都要寫? 因為並非每個表都有相同的名稱列。 請指導我。
// Recode column: Paul
Local( {dt},
dt = Current Data Table();
dt << Begin Data Update;
dt << Recode Column(
dt:Paul,
{Map Value(
_rcOrig,
{-9.9999e+100, ., 9.9999e+100, .},
Unmatched( _rcNow )
)},
Update Properties( 1 ),
Target Column( :Paul )
);
dt << End Data Update;
);
// Clear row selection
dt << Clear Select;回覆:從行選擇中設定規格限制列屬性一個相當簡單的選擇是當您的子集包含 LSL 和 USL 行時

轉置這個(如果我沒記錯的話,用腳本在此輸入列比重新編碼要容易得多)

將標籤列重新命名為變量,重新編碼 LSL 和 USL 列

並使用此表作為您的規格表
