数値基準に一致する列を削除するこんにちは
私は自分のテーブルに数千の列があり、ほとんどゼロでない数を持つ列だけにそれをトリムしたいと思います。つまり、半分以上の行がゼロになっている列を削除またはグループ化して縮小します。任意のヒント?
ありがとうございます。
数値基準に一致する列を削除する私はそれをテストしませんでした、しかしこのスクリプトはあなたに考えを与えます。
Names Default to Here( 1 );
// assume that data table is open and reference to it is stored in variable dt
For( c = N Col( dt ), c > 0, c--,
n zero = dt << Get Rows Where( Column( c )[] == 0 );
If( n zero / N Row( dt ) > 0.5,
dt << Delete Columns( Column( c ) );
);
);
数値基準に一致する列を削除するありがとう - テーブルは開いていますが、dt変数でそれを参照する方法については、synatxのヘルプが必要です。
<SPAN class="token comment">// assume that data table is open and reference to it is stored in variable dt</SPAN>
数値基準に一致する列を削除するdt = Current Data Table();
数値基準に一致する列を削除するJMPが応答しなくなります。CPUの動作によるものではありません - ただし、テーブルウィンドウと数分間対話することはできません。
数値基準に一致する列を削除するビッグデータテーブルでは、行列解はすべての列に対して反復するよりも速いかもしれません。
例:
dt = Current Data Table();
m = dt << get all columns as matrix; // Get table as matrix
// Get list of columns with > 50% zeroes
zero_cols = (dt << get column names)[(Loc(V Sum(m == 0) / N Row(m) > 0.5))];
// Delete them (or group them)
dt << Delete Columns(zero_cols);
// dt << Group Columns("zero", zero_cols);
数値基準に一致する列を削除する私のテーブルには55Kの列があり、これによりそれらのうちの〜17Kが削除されました。それでうまくいきました。