Buenos días,
a partir de una discusión de hace un par de semanas (aquí) , he agregado a la secuencia de comandos resuelta una GUI simple para seleccionar las columnas a analizar y el% de elementos vacíos o estancados en dichas columnas.
Quiero crear una nueva columna para verificar qué columnas de mi tabla están casi vacías o estancadas, pero
Tengo un problema que no puedo bloquear las columnas procesadas a la tabla principal, en mi script algo está mal,
me puedes ayudar
gracias por adelantado
aquí el código:
Nombres predeterminados aquí ( 1 );
Globos claros ();
// código para elegir entre todas las tablas abiertas, una de las cuales se seleccionará para el análisis
OpenDT = Lista ();
por (i = 1 , i <= Mesa N (), i ++,
Insertar en (OpenDT, Tabla de datos ( yo ) )
);
dlgDT = Diálogo ( "Seleccionar tabla de datos para el análisis" , VList (selectDT = Cuadro de lista (OpenDT)), HList (Botón ( "DE ACUERDO" ), Botón ( "Cancelar" )));
Show (dlgDT);
Si (dlgDT [ "botón" ] == 1 ,
Eliminar de (dlgDT, N artículos (dlgDT));
Lista de evaluación (dlgDT);
);
Tabla de datos actual (selectDT [ 1 ]);
// ----------------------------------------- GUI ------ ----------------------------------- //
cd = Diálogo de columna (
Título( "Proyección de columnas" )
List = ColList ( "seleccionar columnas >>" , MinCol ( 1 )),
HList "% de columna vacía> (0-100)" ,
"% de columnas estancadas <(0-100)" , mypercent = EditNumber ( 90 )),
);
// declaración de variables
porcentaje = cd [ "mypercent" ];
mylist = cd [ "Lista" ];
dt = selectDT [ 1 ];
delcols = {};
numRows = las filas (dt);
para (i = 1 ; maxi = Nitems (mylist), i <= maxi, i ++,
Si ( las filas ( loc ( lista ( columna (dt, mylist [i]) << getasmatrix ) modo ( columna (dt, mylist [i]) << getasmatrix )))> numRows * percent / 100 ,
insertar en (delcols, i);
,
Si ( Col N Missing ( columna (dt, mylist [i]))> numRows * percent / 100 ,
insertar en (delcols, i);
);
);
);
nitems = N artículos (delcols);
colname = {};
lista de caracteres = {};
por (p = 1 , p <= nitems, p ++,
colname = Columna (delcols [p]) << Obtener nombre ;
Insertar en (colnamelist, colname (p));
);
subDt1 = dt << Subconjunto (Columnas (lista de columnas), Nombre de la tabla de salida ( "comprobar columnas eliminadas" ));
Lo siento, pero no he visto los detalles de su código, ni lo que está tratando de hacer. Pero talvez deberia ser:
Insert Into( delcols, myList[i] )
más bien que:
Insert Into( delcols, i )