在給定條件下設置行值你好,
我是 JSL 新手,並嘗試創建一個腳本來更改給定列中某些行的值。
我遇到的一般問題是我的數據被分類為來自不同位置,而實際上這些站點是相同的。 因此,當我將它們繪製成圖表時,我得到了超出必要數量的組。
這是我希望能夠實現我的目標的代碼片段:
for each row(
if( As Column( dtSum:Name( "Originating Fab" )) == "D1C",
As Column( dtSum:Name( "Originating Fab" )) << Set Values( { "D1D" } );
);
);其中“dtSum”是我的匯總表,“Originating Fab”是描述該行來自哪個位置的列。
因此,在上面的代碼中,我想將原始站點值從“D1C”更改為“D1D”,因為它們都是相同的位置。
任何幫助將不勝感激。
謝謝,
萊恩
自動化和腳本編寫大規模定制質量和工藝工程回复:在給定條件下設置行值右鍵單擊感興趣的列並選擇重新編碼。您將能夠選擇列中的現有值並指定將其更改為什麼。這就是我所說的交互方法。
回复:在給定條件下設置行值嘿吉姆,
感謝您的快速回复,我之前沒有聽說過 get RowsWhere() 函數。
然而,這些解決方案似乎都對我沒有任何好處。
我知道 JMP 可以交互式生成腳本,但我不太熟悉如何在這種情況下執行此操作。 (我主要將其用於圖表。)
對交互路線有幫助嗎?
回复:在給定條件下設置行值您可能想要探索以交互方式執行此操作,並使用 Recode 進行這些更改。它還可以生成腳本來進行更改。
但如果您確實需要在 JSL 中執行此操作,我更有效的方法是使用 Get RowsWhere() 並立即執行所有更改,而無需循環
dtSum:Name( "Originating Fab" )[ dtSum<<GET rows="" where=""></GET>
另外,如果您想繼續使用循環格式,這是代碼的更簡潔版本
for each row(
if( dtSum:Name( "Originating Fab" ) == "D1C",
dtSum:Name( "Originating Fab" ) ="D1D";
);
);