一致した列を持つ2つの異なるデータテーブルで行を選択する方法&*script below do not work デバッグを手伝ってくれて、実行可能なスクリプトを送ってくれませんか? dt1 で column:name に一致した dt で「すべての行を選択」する機能を実現したいです。
dt = Open( "$SAMPLE_DATA/BIG CLASS.JMP" );
dt1 = dt << Subset( Columns( Name ), Output Table Name( "1" ) );
dt1 << Delete Rows( 15 :: 40 ); // I want to relize the function of "select all rows that (dt:name==dt1:name) dt << Select where( With(dt1), By Matching Columns(name==name), );
;
スクリプティングRe: 一致する列を持つ2つの異なるデータテーブルで行を選択する方法これは本当にいいです! 方法1を使用しました。
これを機能させるには、データ テーブルのファイル パスをコピーして貼り付ける必要がありました。パス全体なしでファイル名を入力できるように、作業ディレクトリを変更する方法がわかりませんでした。
Re: 一致する列を持つ2つの異なるデータテーブルで行を選択する方法どうもありがとうございますRe: 一致する列を持つ2つの異なるデータテーブルで行を選択する方法これを行う3つの異なる方法を次に示します...そして、他の人がこれを行う他の方法を持っていると確信しています
names default to here(1);
dt = Open( "$SAMPLE_DATA/BIG CLASS.JMP" );
dt1 = dt << Subset( Columns( Name ), Output Table Name( "1" ) );
dt1 << Delete Rows( 15 :: 40 );
// Method one, read a name in dt1 and select it in dt, repeat
// for all rows in dt1
dt << clear rowstates;
For(i=1,i<= nrows(dt1),i++,
dt << select where(dt:name == dt1:name[i], current selection("extend"));
);
// Method 2, extract names from dt1 into a list, and then
// compare against the list for the
dt << clear rowstates;
nameList = dt1:name << get values;
dt << select where(contains(nameList,:name));
//Method 3, Update dt with dt1 and select matching rows
// this method would be the fastest on large data tables
dt << clear rowstates;
// add a column to use as a selector
dt1 << New Column( "selector", set each value( 1 ) );
dt << Update( With( dt1 ), Match Columns( :name = :name ) );
dt << select where( :selector == 1 );
dt << delete columns( "selector" );
dt1 << delete columns( "selector" );