テーブルのサブセットを作成し、ループからデータを追加する方法こんにちは、
一連のデータがあります(添付参照)。列上のすべての行を(特定の基準に対して)チェックしてから、その基準を満たさない行を分離し、それらを新しいデータテーブルにサブセット化します。私はこれを複数の列(それぞれが独自の基準を持つ)に対して繰り返すことができ、そして私が最初に作成したこのサブセットテーブルに追加し続けることを望む。私はこれでいくつかの問題を抱えていると誰かが助けることができれば願っていました。
これが私がしていたことです:
path = "xxxxxxx/";
data_table = Open( path || "Sample Data.jmp" );
Sub_Table = New Table( "Rejected Parts Table", invisible );
New_table = data_table;
For( k = 1, k < N Col( New_table ), k++,
Print( k );
New_table << select where( Column( 1 + k )[] >= 0.2 | Column( 1 + k )[] <= 0.02 );
alp = New_table << Subset( Selected Rows, output table name( "subset" ) );
alp << Concatenate( Sub_Table, output table name( "Rejected Parts Table" ) ) <<
Save( path || "Rejected Parts.jmp" );
Close( alp );
New_table << delete rows();
);
再:テーブルのサブセットを作成し、ループからデータを追加する方法すべての列に同じ基準を使用する代替方法
dt = Data Table( "Sample Data.jmp" );
r = Loc( V Sum( Transpose( !(0.02 < dt << get as matrix < 0.2) ) ) );
dt << Subset( rows( r ), output table name( "Rejected Parts Table" ) );
dt << delete rows( r );
各列に独自の基準がある場合は、やや複雑になります。次に例を示します。
dt = Data Table( "Sample Data.jmp" );
upper = [0.2 0.3 0.2 0.4 0.2];
lower = [0.02 0.03 0.02 0.04 0.02];
r = Loc( V Sum( Transpose( !(Repeat( lower, N Row( dt ) ) < dt << get as matrix < Repeat( upper, N Row( dt ) )) ) ) );
dt << Subset( rows( r ), output table name( "Rejected Parts Table" ) );
dt << delete rows( r );
再:テーブルのサブセットを作成し、ループからデータを追加する方法これは少しトリッキーでした。 主な解決策は、selectステートメントでAS COLUMNを使用することです。 ここでget rows whereを使用し、サブセット化/削除するために行のリストを作成するようにロジックを変更しました。 get_unique_values関数はこのフォーラムの好意によるものです。
get_unique_values = Function( {in_list},
{Default Local},
tmp = [=> 0];
Insert Into( tmp, in_list );
tmp << get keys;
);
path = "c:\temp\";
New_table = Open( path || "Sample Data.jmp" );
all_selected_rows = [];
For( k = 1, k < N Col( New_table ), k++,
Print( k );
selected_rows = new_table << get rows where( As Column( 1 + k ) >= .2 | As Column( 1 + k ) <= .02 );
// Append the rows we just found to the master list
If( N Rows( selected_rows ) > 0,
all_selected_rows = all_selected_rows |/ selected_rows
);
);
// Convert matrix to a list and get unique values
all_selected_list = get_unique_values( As List( all_selected_rows ) );
alp = New_table << Subset( rows( all_selected_list ), output table name( "Rejected Parts Table" ) );
alp << Save( path || "Rejected Parts.jmp" );
Close( alp );
New_table << delete rows( all_selected_list );