リストにない列を削除するこんにちは、みんな、
保持したい列のセットがあり、このセット以外のすべてを削除します。
削除したい列の数が多すぎます。
スクリプトを使用してこれを行う簡単な方法はありますか?
ありがとう。Re: リストにない列の削除ありがとうございます!条件に一致する列をサブセット化することは可能ですか?
キーワードを含む列のみをサブセット化したいのですが、列名全体ではなく(データ量が多いため)サブセット化したいです。Re: リストにない列の削除Daveさん、こんにちは。ご協力ありがとうございます。素晴らしいブログですね!8000列を超える非常に大規模なデータセットがあり、保持する列と保持しない列があります。最終的に、保持したい最初の列に対してサブセットを使用することにしました。その後、テーブルの残りの部分に対してループを実行し、「_M」などのキーワードに一致する列を保持します。そして最後に、サブセットと、条件に一致する列名を持つ保持していたテーブルを結合します。これで正常に動作します。しかし、その後、以下のコードでリストを使用しようとしましたが、実行されないようです。このコードではリストの使用は許可されていないのでしょうか? dt = Current Data Table(); // データテーブルを選択 dt << Set Name( "Raw_Data" ); dt << Subset( Columns( 1 :: 30 ), Rows( all ), Output Table( "Subset" ) ); // メインの列名を保持 dt << Revert(); // vt 列を保持 colList = Data Table( "Raw_Data" ) << Get Column Names( String ); For( i = N Cols( dt ), i >= 1, i--, If( !Contains( colList[i], "_M" ), // 名前に "_M"" が含まれる列のみを保持 dt << Delete Column( Column( colList[i] ) ) ) );Re: リストにない列の削除すみません、もしかしたら誤解していたかもしれません。このコードはテーブルからではなくリストから項目を削除しています。ただし、更新されたリストをSubsetコマンドで使用することで、必要な列のみを含むサブセットテーブルを生成できます。
詳細はこちら: http://www.pega-analytics.co.uk/blog/scripting-table-subsets/
Re: リストにない列の削除「物事を成し遂げる方法は100万通りある…」トーキング・ヘッズ、「What A Day That Was」、1984年
削除する列の数が非常に多い場合は、リスト内の列のみを残し、すべての行をテーブルからサブセット化する方が効率的です。これにより、繰り返し削除する手間を大幅に省くことができます。
ただし、申請はそれほど簡単ではないかもしれません。
Re: リストに含まれていない列の削除こんにちは、Daveさん。私の質問に迅速にご回答いただきありがとうございます。サンプルコードを実行しましたが、リストの列がテーブルにまだ表示されているようです。何か見落としている点があるでしょうか? dt = Data Table( "temp" ); all = dt << Get Column Names( string ); vt = {"lot_id", "wf_id", "die_x"}; For( i = 1, i <= N Items( vt ), i++, pos = Contains( all, vt[i] ); If( pos > 0, Remove From( all, pos ) ); );Re: リストにない列の削除少し異なりますが、考え方は同じです。以下のコードはリスト内の列を削除します。具体的には、列のリスト( 全て )があり、リスト除外に含まれる項目を削除します。
all = dt << Get Column Names(string);
// assume excl is a list of column names that i want to remove
For (i=1,i<=NItems(excl),i++,
pos = Contains(all,excl[i]);
If (pos>0,
RemoveFrom(all,pos)
)
);
Re: リストにない列の削除こんにちは。このディスカッションを見ていました。件名はとても参考になったのですが、解決策が見つかりません。削除されてしまったのでしょうか?再度投稿していただけると助かります。ありがとうございます!Re: リストにない列の削除数値項目(L値)のみであれば、この方法はうまくいくかもしれません。しかし、列名の場合はそううまくいかないことが多いです。連想配列をうまく使えば、名前と数値を切り替えることができるかもしれません。Re: リストにない列の削除ありがとう、うまくいきました。リストを2つ使って、片方からもう片方を減算したり、逆にもう片方から減算したりできればいいのですが。Re: リストにない列の削除すべての列をループし、各列を保持リストと比較して、削除する列のリストを作成します。
例