列をリストと一致させ、残りを削除しますやあ -
データテーブルから(列名に基づいて)列を削除したいのですが、いいえリストに一致します。 私はこれまでJSLコードをフォローしていますが、機能していません。
入力を歓迎します。
Names Default To Here( 1 );
bigClass = Open( "$SAMPLE_DATA/Big Class.JMP" );
dt = Current Data Table();
col_of_interest = {"name", "age", "weight"};
col_names = dt << Get Column Names( String );
For(j = 1, j <= N Items( col_of_interest ), j++,
For( i = N Items( col_names ), i > 0, i--,
if ( not( col_names[i] == col_of_interest[j],
Remove From( col_names, i ))
);
);
);
dtNew = dt << subset( all rows, columns( col_names ) ); Wait( 0 );
スクリプティングウィンドウズRe:列をリストと一致させ、残りを削除しますデータテーブルのすべての列をループし、必要に応じて削除します(アイデアを維持したい場合は、デバッグを支援することもできます)。
Names Default To Here(1);
bigClass = Open("$SAMPLE_DATA/Big Class.JMP");
dt = Current Data Table();
col_of_interest = {"name", "age", "weight"};
col_names = dt << Get Column Names(String);
For(i = 1, i <= N Items(col_names), i++,
If(!Contains(col_of_interest, col_names[i]),
dt << Delete Columns(col_names[i]);
);
);
Wait(0);また、JMPには行列関数J()があるため、変数名としてJを使用しないことをお勧めします。
編集:
また、テーブルを開いた後にすでに参照があるため、Current Data Table()を使用する必要はありません(使用しないでください)。 また、列を削除するための私の好ましい方法は次のとおりです(連想配列を使用して余分な列のみを取得し、それらを削除します)。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.JMP");
col_of_interest = {"name", "age", "weight"};
//get columns which are "extra"
col_names_aa = Associative Array(dt << Get Column Names(String));
col_names_aa << Remove(Associative Array(col_of_interest));
col_names_to_remove = col_names_aa << get keys;
Show(col_names_to_remove);
dt << Delete Columns(col_names_to_remove);Re:列をリストと一致させ、残りを削除します2つのリストを比較すると、ループの処理中に結果を含む3番目のリストを作成し、すべてのループが完了したときに3番目のリストを使用してアクションを実行する方が簡単です。以下のコードは、あなたが試みていることを達成するかもしれません。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.JMP" );
col_of_interest = {"name", "age", "weight"};
col_names = dt << Get Column Names( String );
col_list = {};
For( i = N Items( col_names ), i > 0, i--,
if(contains(col_of_interest, col_names[i]),
insert into(col_list, col_names[i])
);
);
dtNew = dt << subset( all rows, columns( col_list ) );
Wait( 0 );
Re:列をリストと一致させ、残りを削除します行列関数J、jthiの入力とヒントをありがとう。 再試行させてください。