使用時間戳記從表中刪除重複數據我很抱歉,我知道這個問題在這個論壇上已經被問過很多次了,但我一直無法找到解決我的問題的方法。
我有一個很大的資料集 ~24,000 行測試資料。 我們的流程是在 5 個晶片上運行 5 個步驟驗證,一旦獲得結果,我們就開始測試,這最終意味著我將在這 5 個站點上獲得重複數據。這 5 個步驟的驗證會驗證接觸點,有時會導致我們拆下測試設備並重新安裝。 我希望從第一次測試(達陣)中排除重複數據。 我們的測試帶有時間戳,因此很容易區分新舊測試。 如果有人對我的問題有很好的解決方案,我會洗耳恭聽。 附件是我試圖刪除重複項的資料表。
謝謝你,
英格
回覆:使用時間戳從表中刪除重複數據午安先生特克斯尼爾森,
我想我可以在這裡與您聯繫,而不是創建一個新線程。 我需要一些幫助來計算產量並使用您提供的刪除重複資料的腳本中的輸出表生成選擇列表/晶圓圖。 我瀏覽了社區論壇,據我所知,發現了一篇 2016 年開始的帖子。 所有輸出變數等都有些令人困惑且難以理解。 我附上了最終輸出的表格。
我嘗試過使用拆分、堆疊、製表、摘要,但似乎無法找到解決方案。 實際上,我有兩個相同的獨立表,除了名為 :trmode 的欄位之外。 正如我所提到的,我正在嘗試執行良率分析,然後建立一個選擇清單和晶圓圖。 我實際上有另一個 test_output 表,我目前正在使用你們好先生們提供給我的工具來處理它。
dummy_data_tx:test_output 每個頻道的規格限制為(LSL = 20 和 USL = 40)
dummy_data_rx:每個頻道的 test_output 的規格限制為(LSL = 15 和 USL = 35)
dummy_data_dc:test_output 的規格限制為-(實際上在使用此測試刪除重複資料時存在問題..
set_id (7000) - VDD_Dig(LSL = 0.03 且 USL = 0.06)
set_id (7100) - VDD_Dig(LSL = 0.03 且 USL = 0.06)
set_id (7200) - VDD_Dig(LSL = 0.03 且 USL = 0.06)
非常感謝您再次給我的任何幫助。
set_id (7000) - 模擬(LSL = 0.03 且 USL = 0.07)
set_id (7100) - VDD_Dig(LSL = 0.2 且 USL = 1)
set_id (7200) - VDD_Dig(LSL = 0.15 且 USL = 0.35)
回覆:使用時間戳從表中刪除重複數據謝謝特克斯尼爾森,
今天早上我打算嘗試一下,並將其合併到我的伺服器拉腳本/表操作中。
再次非常感謝..
回覆:使用時間戳從表中刪除重複數據我重新思考了這個問題,並提出了一個完整的方法論。此程式碼適用於晶圓
Names Default To Here( 1 );
dt = Current Data Table();
// Summarize the data to find the maximum :ts for each wafer/rowcol
dtSum = dt << Summary(
Group( :wafer_number, :RowCol ),
Max( :ts ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
link to original table( 0 )
);
// Join the data together matching only where the max :ts for each
// wafer/rowcol
dtFinal = dt << Join(
With( dtSum ),
Merge Same Name Columns,
By Matching Columns( :wafer_number = :wafer_number, :RowCol = :RowCol, :ts = :ts ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 0 ),
Preserve main table order( 1 )
);
dtSum << delete columns("N Rows");
Close( dtSum, nosave );
// Delete all rows that do not match the maximum value of :ts within
// each Wafer, RowCol
dtFinal << select where( Not( :Match Flag == 3 ) );
dtFinal << delete rows;
// Get rid of the Match Flag column which is an artifact of the Join
dtFinal << delete columns("Match Flag");回覆:使用時間戳從表中刪除重複數據特克斯尼爾森,
關於刪除重複資料的另一個問題.. 我忘了提及,我進行了一次包含所有晶圓的全面資料拉取,以便我進行整體分佈和單向 t 檢定分析。
我附上的數據表只是一個晶圓的測試數據。我應該把wafer_number放在腳本的哪個位置? 我會將其包含在 summarise() 部分嗎?
我附上了新的數據表以供參考。
我不得不刪除另一個,因為有人向我指出我的 sql 腳本是從我們的伺服器中提取的...
回覆:使用時間戳從表中刪除重複數據哎呀......那應該是 1 而不是 9回覆:使用時間戳從表中刪除重複數據我好奇! 我是一名工業工程師,編碼對我來說非常困難。 從一開始,If() 和 For() 就讓我陷入了循環(請原諒雙關語)。 你是如何決定 9 這個數字的?
再次感謝回覆:使用時間戳從表中刪除重複數據太感謝了! 我對你們這些紳士在腳本編寫方面的技巧感到非常驚訝。 在這裡,我想這將是一個複雜的腳本來完成這個任務,並且你設法在 10 行內完成它。
你和先生摩根0非常有幫助..
附註:我的公司在周期中有一個採購訂單為我們提供了 JMP 14,這讓我非常興奮。
再次感謝先生。特克斯尼爾森..
Yng(不再那麼Yng了)
回覆:使用時間戳從表中刪除重複數據我認為這會成功......它只是找到給定 RowCol 的時間戳(ts)小於該 RowCol 最大時間戳的所有行,然後刪除它們。處理需要幾分鐘,但似乎有效
Names Default To Here( 1 );
dt = Current Data Table();
// remove formula leaving static data
try(dt:RowCol << delete formula);
Summarize( dt, byGroup = by( "RowCol" ) );
For( i = 1, i <= N Items( byGroup ), i++,
theRows = dt << get rows where( dt:RowCol == byGroup[i] & :ts < Col Max( dt:ts, :RowCol ) );
If( N Rows( theRows ) > 1,
dt << delete rows( theRows )
);
);
回覆:使用時間戳從表中刪除重複數據對於那個很抱歉.. 我刪除了不必要的列並重新附加。
test_output 是我需要的資料。 RowCol 是我正在測試的裝置的識別碼。
我附上 RowCol {r2c3sr1sc1, r2c8sr1sc1, r4c5sr1sc1, r7c3sr1sc1, r7c8sr1sc1} 的總表有重複的資料。 我需要從資料集中刪除這些設備的初始測試。 他們可能會有最早的時間戳。 這 5 個裝置在每個設定中都會使用,這需要我從每個 test_output 中刪除。
回覆:使用時間戳從表中刪除重複數據我無法從您附加的資料表中識別包含您想要刪除的測試 1 資料的行。您能否提供代表目標資料的 1 或 2 個案例的行號?