最初の重複行を削除するにはどうすればよいですか?コミュニティの皆様、最初の重複のある行を削除する方法について質問があります。
例
| 番号 | 日にち | カウント |
| 4567 | 2017-01-21 | 1 |
| 5555 | 2017-02-03 | 1 |
| 5555 | 2017-02-10 | 2 |
| 8745 | 2015-03-10 | 1 |
| 8345 | 2016-05-01 | 1 |
| 9563 | 2016-01-02 | 1 |
| 9563 | 2016-01-10 | 2 |
この例では、ここで太字でマークした重複を見つけて、これらの行を直接削除するか、または保持と削除などを記述できる追加の列を作成する方法のスクリプトはありますか?
JMP Pro 14.0.0 (64 ビット) を使用しています。
敬具
ラース・エノクソン医師、 博士号
外科学教授
外科および周術期科学部
ウメオ大学
スウェーデン胆石手術およびERCP登録責任者、GallRiks
スウェーデン外科学会科学幹事
Eメール: lars.enochsson@umu.se
Re: 最初の重複行を削除するにはどうすればよいですか?@MS 、
JMP に関する長年の経験と知識は、コミュニティ ディスカッションの回答から明らかです。コミュニティにご参加いただき、誠にありがとうございます。
ジム
Re: 最初の重複行を削除するにはどうすればよいですか?実際、私は 1994 年にスウェーデンのウプサラ大学で初めて JMP に出会い、それ以来ずっと使用しています。 JMP はスウェーデンの学界ではまだあまり一般的には使用されていませんが、私はこれまでにかなりの数の SPSS ユーザーを「変換」してきました。
同意します、このコミュニティは素晴らしいです。
Re: 最初の重複行を削除するにはどうすればよいですか?そうですね、「ありがとう」はありがたいですね。 あなたが同じスカンジナビア人であることがわかったので、さらに安心して返信できます。 私の曽祖父、ネルス・ナットソンは、ノルウェーのベルガンからアメリカに移住しました。Re: 最初の重複行を削除するにはどうすればよいですか?早速のお返事ありがとうございます。 このスクリプトは本当にうまくいきました。 スウェーデンでは、少なくとも学術界では JMP を使用している人はそれほど多くありません。 通常は SPSS または Stata を使用します。 しかし、この活発なコミュニティでは変更する理由はありません。 ここウメオ大学の統計学者も感銘を受けています。/ラースRe: 最初の重複行を削除するにはどうすればよいですか?このスクリプトも機能するはずです。
// Delete all multiplicate rows except the one with the latest date (sorting does not matter).
dt = Current Data Table();
dt << Select Where(Col Max(:Date, :Nr) > :Date);
dt << Delete rows;
編集: 重複が同じ日付を持つことができる場合、これはより適切に機能しますが、日付による並べ替えが必要です。
dt << Select Where(Col Max(Row(), :Nr) > Row());
dt << Delete Rows;
Re: 最初の重複行を削除するにはどうすればよいですか?ジョブを実行するスクリプトは次のとおりです。
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 7 ),
New Script(
"Source",
Data Table( "Transpose of Untitled 17" ) <<
Subset( All rows, Selected columns only( 0 ) )
),
New Column( "Nr",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [4567, 5555, 5555, 8745, 8345, 9563, 9563] )
),
New Column( "Date",
Numeric,
"Continuous",
Format( "yyyy-mm-dd", 12 ),
Input Format( "yyyy-mm-dd" ),
Set Values(
[3567801600, 3568924800, 3569529600, 3508790400, 3544905600, 3534537600,
3535228800]
)
),
New Column( "Count",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 2, 1, 1, 1, 2] )
)
);
dt << select duplicate rows( Match( :Nr ) );
wait(5);
dt2 = dt << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
dt << delete rows;
Wait(5);
dt = dt << Update( With( dt2 ), Match Columns( :Nr = :Nr ) );
Close( dt2, nosave );
Re: 最初の重複行を削除するにはどうすればよいですか?こんにちは、ラーズさん
重複は常に順番に並べられるのでしょうか、それとも間にレコードが存在する可能性がありますか?あなたの例のように、それらが常に連続している場合は、次のようなことができます。
dt = Current Data Table();
del_rows = {}; //initiate list to contain list of rows that are duplicates
for(i = 1, i<=N Row(dt), i++,
if(:Nr[i] == :Nr[i+1], insert into(del_rows,i)) //if Nr for current row is same as next, then put current row in del_rows
);
dt << Delete Rows(del_rows); //delete all rows in del_rows