公開日: 09/19/2023

行の削除

JSLを使って行を削除するには、Delete Rowsメッセージを送って、削除する行(複数可)を指定します。複数の行を削除するには、行番号(rownum)引数でリストまたは行列を指定するか、Delete RowsコマンドをForなどの他のコマンドと組み合わせて使います。行番号(rownum)引数として指定できるのは、番号、番号のリスト、番号の範囲、行列、またはこれらのどれかを導き出す式です。引数が指定されていない場合、Delete Rowsは選択されている行の数を戻し、これらの行を削除します。引数が指定されていないか、または行が選択されていない場合、Delete Rowsは選択されている行の数、つまり0を戻します。

dt << Delete Rows( 10 ); // 行10を削除する
dt << Delete Rows( {11, 12, 13} ); // 行11~13を削除する
myList = {11, 12, 13};
dt << Delete Rows( mylist ); // 行11~13を削除する
dt << Delete Rows( 1 :: 20 ); // 最初の20行を削除する
dt << Delete Rows( [1 2 3] );  // 最初の3行を削除する

たとえば次のスクリプトは、「Big Class.jmp」を開き、10行目を削除します。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Selected( Row State( 10 ) ) = 1; // 行10を選択する
dt << Delete Rows;  // 行10を削除する

同じ行を複数回リストしてもかまいません。リストする順序も自由です。

以下に、任意のサイズのデータテーブルから最後のx行を削除する一般的な方法を示します。次の例は、データテーブルの最後の5行を削除します。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
x = 5;
n = N Row( dt );
For( i = n, i > n - x, i--,
	dt << Delete Rows( i )
);

NRowは、テーブル内の行をカウントします。各行に対してスクリプトを反復するを参照してください。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).