Explorar valores perdidos para muchas columnasHola,
Me gusta escribir un script para explorar los valores faltantes y cuando lo ejecuto, generaré muchas tablas para cada columna. Dado que estoy utilizando la imputación normal multivariable, todas las columnas deben seleccionarse de forma simultánea. ¿Puedes ayudarme a lograr eso? Aquí está el guión que tengo hasta ahora.
lstNames = dt << Get Column Names(String,Numeric);
ncols = N items(lstNames);
for (i=1, i <= N items(cols), i++,
obj = Explore Missing Values(
Y(
Column(lstNames[i])
),
Missing Value Report,
SendToReport(
Dispatch( {}, "Missing Columns", OutlineBox, {SetHorizontal( 1 )} )
)
);
Gracias
obj << Imputación Normal Multivariada ;
);
Re: Explorar valores que faltan para muchas columnasGracias Jim por la rápida solución. Ahora funciona.
Re: Explorar valores que faltan para muchas columnascambiar la definición del bucle For de "<" a "<="
Re: Explorar valores que faltan para muchas columnasHola Jim,
Gracias por el script actualizado. Funciona y no hay error en el registro. Lo único que noté es que la última columna de la tabla no está incluida en los valores faltantes. Probé en dos tablas de datos diferentes y ambas muestran el mismo problema. ¿Hay alguna razón para eso?
Aprecio su ayuda adicional. Gracias
Re: Explorar valores que faltan para muchas columnasVaya, quité el par incorrecto de ")" s. Prueba esto:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Semiconductor Capability.jmp" );
lstNames = dt << Get Column Names( string, Numeric );
// Create a string variable of the structure the platform
// wants them passed to it
names = ":" || lstNames[1];
For( i = 2, i < N Items( lstNames ), i++,
names = names || ",:" || lstNames[i]
);
// Execute the following string, with the column names embedded in it
Eval(
Parse(
"obj = Explore Missing Values(
Y( " || names ||
"),
Missing Value Report,
SendToReport( Dispatch( {}, \!"Missing Columns\!", OutlineBox, {SetHorizontal( 1 )} ))) ;"
)
);Re: Explorar valores que faltan para muchas columnasHola Jim,
Gracias por el script actualizado. Parece que todavía estoy recibiendo el mismo error.
Inesperado ")". Tal vez hay una falta ";" o ",".
Línea 2 Columna 4369: ... ABC)) ►), ...
El texto restante que fue ignorado fue
), Informe de valor faltante, SendToReport (Despacho ({} "," Columnas faltantes, OutlineBox, {
SetHorizontal (1)})));
Explora los valores perdidos []
Gracias por tu ayuda
Re: Explorar valores que faltan para muchas columnasHubo 2 ")" que se dejaron inadvertidamente en el código ... aquí hay una versión corregida
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Semiconductor Capability.jmp" );
lstNames = dt << Get Column Names( string, Numeric );
// Create a string variable of the structure the platform
// wants them passed to it
names = ":" || lstNames[1];
For( i = 2, i < N Items( lstNames ), i++,
names = names || ",:" || lstNames[i]
);
// Execute the following string, with the column names embedded in it
Eval(
Parse(
"obj = Explore Missing Values(
Y( " || names ||
")) ),
Missing Value Report,
SendToReport( Dispatch( {}, \!"Missing Columns\!", OutlineBox, {SetHorizontal( 1 )} ) ;"
)
);Re: Explorar valores que faltan para muchas columnasHola Jim,
Acabo de notar que en el archivo de registro hay un error:
Inesperado ")". Tal vez hay una falta ";" o ",".
Línea 2 Columna 789: ...: P2A1,: P2B1,: PM_L1,: P1)) ►), ...
El texto restante que fue ignorado fue
), Informe de valor faltante, SendToReport (Despacho ({} "," Columnas faltantes, OutlineBox, {
SetHorizontal (1)})));
Explora los valores perdidos []
¿Sabes a qué se relaciona esto? Noté que no hará imputación de valor a la última columna.
Gracias por tu ayuda.
Re: Explorar valores que faltan para muchas columnasHola Jim,
Muchas gracias por una rápida respuesta y resolución. Intenté tus sugerencias y funciona perfectamente. yo añadí
obj << Multivariate Normal Imputation;
para hacer la imputación. Gracias de nuevo.
Re: Explorar valores que faltan para muchas columnasAquí hay un ejemplo de una manera de resolver este problema.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Semiconductor Capability.jmp" );
lstNames = dt << Get Column Names( string, Numeric );
// Create a string variable of the structure the platform
// wants them passed to it
names = ":" || lstNames[1];
For( i = 2, i < N Items( lstNames ), i++,
names = names || ",:" || lstNames[i]
);
// Execute the following string, with the column names embedded in it
Eval(
Parse(
"obj = Explore Missing Values(
Y( " || names ||
")) ),
Missing Value Report,
SendToReport( Dispatch( {}, \!"Missing Columns\!", OutlineBox, {SetHorizontal( 1 )} ) ));"
)
);