Eliminar columnas que se ajustan a un criterio numéricoHola
Tengo varios miles de columnas en mi tabla y me gustaría recortarla solo a aquellas columnas que en su mayoría tienen números que no son cero. es decir, eliminar o agrupar y contraer esas columnas que tienen ceros para más de la mitad de las filas. ¿Algun consejo?
¡Gracias!
Re: Eliminar columnas que se ajustan a un criterio numéricoNo lo probé pero este script te da una idea.
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: Eliminar columnas que se ajustan a un criterio numéricoGracias: la tabla está abierta, pero necesitaría ayuda con synatx para saber cómo referirse a ella en la variable dt.
<SPAN class="token comment">// assume that data table is open and reference to it is stored in variable dt</SPAN>
Re: Eliminar columnas que se ajustan a un criterio numéricodt = Current Data Table();
Re: Eliminar columnas que se ajustan a un criterio numérico¡Está haciendo que JMP no responda! No por la actividad de la CPU, pero simplemente no puede interactuar con la ventana de la tabla durante minutos ...
Re: Eliminar columnas que se ajustan a un criterio numéricoPara tablas de datos grandes, una solución matricial puede ser más rápida que iterar en todas las columnas.
Ejemplo:
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: Eliminar columnas que se ajustan a un criterio numéricoMi mesa tenía 55K cols y esto eliminó ~ 17K de ellos. Así funcionó.