숫자 기준에 맞는 열 삭제안녕하세요
내 테이블에 수천 개의 열이 있는데 대부분 숫자가 0이 아닌 열만 잘라 내고 싶습니다. ie 행을 반 이상에 대해 0이있는 열을 삭제하거나 그룹화하고 축소합니다. 어떤 팁?
감사!
제목 : Re : 숫자 기준에 맞는 열 삭제나는 그것을 테스트하지 않았지만이 스크립트는 당신에게 아이디어를 준다.
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 ) );
);
);
제목 : Re : 숫자 기준에 맞는 열 삭제감사합니다 - 테이블은 열려 있지만 dt 변수에서이를 참조하는 방법에 대해서는 synatx에 대한 도움이 필요합니다.
<SPAN class="token comment">// assume that data table is open and reference to it is stored in variable dt</SPAN>
제목 : Re : 숫자 기준에 맞는 열 삭제dt = Current Data Table();
제목 : Re : 숫자 기준에 맞는 열 삭제JMP는 응답하지 않습니다. CPU 활동이 아닌 - 단 몇 분만 테이블 창과 상호 작용할 수는 없습니다 ...
제목 : Re : 숫자 기준에 맞는 열 삭제큰 데이터 테이블의 경우 행렬 솔루션이 모든 열을 반복하는 것보다 빠를 수 있습니다.
예:
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);
제목 : Re : 숫자 기준에 맞는 열 삭제내 테이블에 55K cols가 있었는데 이것으로 ~ 17K가 삭제되었습니다. 그래서 효과가있었습니다.