重複行の削除 (最初の重複を保持)これについては以前に議論されたことは承知していますが、私の特定の状況に対する提案を探しています。 非常に大きなデータテーブル (約 50 列 x 50,000 行以上) があります。 「重複行」をチェックする必要があります。重複とは、行が 3 つの列 (ColA、ColB、ColC など) で一致することを意味します。 重複が存在する場合は、一致する最初の行を除くすべてを削除する必要があります。
更新されたテーブルを頻繁に再取得して再分析する必要があるため、理想的にはこれをスクリプトで実行したいと考えています。 これを助けるために要約テーブルを使用できるのではないかと思います(少なくとも重複行を識別して選択することができます)。 ただし、そこから「一致した」行の各セットの移動を自動化し、最初の行を除くすべてを削除する方法がわかりません。Re: 重複行の削除 (最初の重複を保持)それは素晴らしいことです!
一方 (JMP 13 では)、これは同等である必要があります
// Keep first instance of duplicates only
dt << select where(Col Min(Row(), :a, :b, :c) < Row()) << delete rows;
Re: 重複行の削除 (最初の重複を保持)JMP 14 には、[行] メニューに新しいコマンド [重複行の選択] があり、結合を行わずに直接実行できます。
dt << select duplicate rows(match(:a, :b, :c));
dt << delete rows;
重複行の削除 (最初の重複を保持)うまくいきました、ありがとう!スクリプトバージョンのコードは次のとおりです。
// JMP script to Eliminate duplicate rows "matching Parent, Wafer, & Raw Number"
dt3 = Current Data Table();
dt2 = dt3 << Summary(
Group( :Parent, :Meas Wafer Id, :Raw Number )
);
dt = dt3 << Join(
With( dt2 ),
Update,
By Matching Columns(
:Parent = :Parent,
:Meas Wafer Id = :Meas Wafer Id,
:Raw Number = :Raw Number
),
Drop multiples( 1, 0 ),
Name( "Include non-matches" )(0, 0),
Preserve main table order( 1 ),
);
Close(dt2, no save);
Close(dt3, no save);
Re: 重複行の削除 (最初の重複を保持)一致する 3 つの列に対して summary を使用します。 次に、要約テーブルを元のテーブルに結合し、重複を削除するオプションをオンにして同じ 3 つの列を照合し、出力テーブルに必要な関連列のみを選択します。Re: 重複行の削除 (最初の重複を保持)重複の最後 (最初ではない) を保持したいかどうか教えていただけますか?スクリプトを変更するにはどうすればよいですか? ありがとう。
Re: 重複行の削除 (最初の重複を保持)ここにバリエーションがあります@MSあなたが望むことをするスクリプト
dt << select where(Col Max(Row(), :a,:b, :c) > Row()) << delete rows;
Re: 重複行の削除(最初の重複行は保持)素晴らしい!うまくいきました。ありがとうございます。まさに私が求めていたものです。
よろしく、チリー