如何過濾掉重複的 ID,只留下最後一個重複的 ID?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我希望有一個 JSL 解決方案,我可以只使用 ' <<選擇哪裡' 消息到數據表。 我有一個數據表,其中每一行代表一個經過測試的設備。
有 2 個數字列為每一行指定唯一標識符,即“ID”列和“晶圓編號”列。 還有另外 2 列分別指定日期和時間。 問題是有時,設備會在同一數據集中重新測試,這會導致 ID 和晶圓列的值重複。 我希望能夠選擇所有唯一 ID,並且在重複 ID 的情況下確保僅選擇最後一個值(按行號或時間戳)。
下面是一個示例數據表,顯示了我正在尋找的內容。 重新測試的兩個部分(此處以紅色突出顯示,相應的重新測試以綠色顯示)被排除在外,其他所有內容都被選中。
對此的任何幫助將不勝感激。
謝謝。

回复:如何過濾掉重複的 ID,只留下最後一個重複的 ID?嗨恩凱萊,
當我說“我會按 ID、WaferNum、日期和時間(按此順序)對錶格進行排序”時,我的意思是
Current Data Table() << Sort(By(:ID, :WaferNum, :Date, :Time), Order(Ascending));
我非常懷疑像您一樣一個接一個地運行多個 Sort(單列作為每個參數),不會給出與運行一個 Sort 以多個列作為參數相同的結果。
希望這可以幫助
回复:如何過濾掉重複的 ID,只留下最後一個重複的 ID?大家好,
非常感謝您的幫助。
傑夫,你的方法對我來說非常有用,除了在進一步檢查數據時,結果發現有相同日期和時間值的重複項(抱歉,示例中沒有顯示)。
最後,我同意了 jvillaumie 的建議。 下面是我的實現。
mydt = Current Data Table();
//Sort columns by ID, wafer num, date in that order
mydt << Sort( Replace Table, By(:ID), Order(Ascending));
mydt << Sort( Replace Table, By(:WaferNum), Order(Ascending));
mydt << Sort( Replace Table, By(:Date), Order(Ascending));
//Select duplicates, i.e. if the next row has the same values for ID and waferNum as the current row, i.e. everything but the last duplicate
mydt << Select Where(
:ID == :ID[Row() + 1] & :WaferNum == :WaferNum[Row() + 1]
);
//Delete Selection
mydt <<DeleteRows;
回复:如何過濾掉重複的 ID,只留下最後一個重複的 ID?與 JMP 的許多事情一樣,有多種方法可以實現這一點。
首先要注意的是上校最大()功能將採取可選按變量爭論。

因此,我認為您可以使用它來構建選擇行的條件:
(:Date ==Col Maximum(:Date,:ID,:WaferNum ))&(:Time ==
Col Maximum(:Time,:ID,:WaferNum,:Date ));
-傑夫
回复:如何過濾掉重複的 ID,只留下最後一個重複的 ID?我會按 ID、WaferNum、日期和時間(按此順序)對錶進行排序,以便具有相同 ID 和 WaferNum 的行在表中彼此跟隨,較舊的行在最近的行之上。
然後我會使用這個公式創建一個名為“Duplicate”的新列(您應該能夠直接複製它並粘貼到 JMP 中):
If( :ID == :ID[Row() + 1, Empty()] & :WaferNum == :WaferNum[Row() + 1, Empty()],
1,
0
)
它將用“1”標記後跟具有相同 ID 和 WaferNum(即不是最新的複制)的另一行的行。
使用 SelectWhere Duplicate == 0。
回复:如何過濾掉重複的 ID,只留下最後一個重複的 ID?看看這些討論:
回复:語法:如何按 ID 創建索引列
JMP公式:按組排名
一旦你建立了排名,你就可以過濾。
羅恩
回复:如何過濾掉重複的 ID,只留下最後一個重複的 ID?謝謝你。 我確實看到了一個這樣的例子,但我希望有一種方法可以通過在數據表的 << Select Where() 消息中指定一個條件來實現這一點。 我覺得這應該是可能的,但不確定你會怎麼做。
此外,另一個考慮因素是在測試批次中,日期和時間戳不會更改,這意味著您仍然會有重複項,其中唯一的區別在於行號僅限於我指定的列。 無論如何干杯。
回复:如何過濾掉重複的 ID,只留下最後一個重複的 ID?一種選擇是為日期和時間創建一列(串聯)。這將允許您按 ID 和 WaferNum 使用表格摘要並請求日期和時間的最大值。這將為您生成一張乾淨的新桌子。
羅恩