La propiedad de codificación no tenía dos númerosHola,
El bucle for a continuación itera por las columnas y asigna una propiedad "coding" a cada una. all_cols es la lista de columnas de interés. La función funciona prácticamente como se esperaba. La propiedad coding está asignada correctamente, incluyendo los valores de columna mínima y máxima.
for( y = 1, y <= N Items( all_cols ), y++,
row() = y;
lims = Eval List( { col min( eval( all_cols[y] ) ), col max( eval( all_cols[y] ) ) } );
all_cols[y] << Set Property( "Coding", Expr( lims ) );
);
Sin embargo, en el registro mejorado, observo el error "La propiedad de codificación no tenía dos números". Se repite una vez por cada columna en all_cols. He contado.
Aquí es donde esto presenta un problema. Más adelante en mi script, se ejecutan los Mínimos Cuadrados Estándar. Al eliminar un efecto de la lista de efectos en el Resumen de Efectos, aparece un cuadro de error con el mismo mensaje. Se muestra a continuación. Si se sale del cuadro con la "x" en la esquina superior derecha o se pulsa el botón "Aceptar", este cuadro aparecerá indefinidamente, bloqueando el uso de JMP hasta que finalice las tareas de JMP forzosamente.

Una función for each() generará el mismo error, dadas evaluaciones de expresiones JMP similares. Esto equivaldría a resaltar todas las columnas y modificar por lotes todas sus propiedades mediante la función "Estandarizar atributos".
¿Alguna idea de lo que está pasando y cómo detenerlo?
Ingeniería de Calidad y ProcesosRe: La propiedad de codificación no tenía dos númerosLa propiedad de la columna Codificación parece correcta en el cuadro de diálogo Información de la columna, pero es incorrecta. Examiné el script de la tabla de datos y descubrí que el segundo argumento del mensaje << Establecer propiedad() se asigna literalmente. No utiliza el valor almacenado en Lims . Tienes que sustituir el valor tú mismo. Aquí hay una manera que funciona.
For( i = 1, i < N Col(), i++,
lims = Eval List( {Col Min( Eval( Column(i) ) ), Col Max( Eval( Column(i) ) )} );
Eval(
Substitute(
Expr( Column( i ) << Set Property( "Coding", ccc ); ),
Expr( ccc ), lims
)
)
);
Esta propiedad se agrega automáticamente cuando hace clic en Crear tabla en una plataforma JMP DOE. ¿Por qué necesita agregar esta propiedad después de crear la tabla?
Re: La propiedad de codificación no tenía dos númerosall_cols es una lista de columnas, pero el bucle la itera. La línea debajo de donde se define lims llama a lims con Expr().¿Esto ayuda?
Re: La propiedad de codificación no tenía dos númerosAquí hay más notas sobre este tema:
- Usando << Get Property("Coding") para cada una de las columnas en el ciclo, los pares de valores col min y col max se devuelven correctamente. Esto verifica que la propiedad se asignó correctamente y que se completaron los valores.
- Al aislar el código para Establecer propiedad () en un script en blanco, funciona bien, no hay notificaciones de error en los registros mejorados... Sin embargo, lea a continuación.
- Cuando está en el cuadro de diálogo Ajustar modelo, después de ejecutar Establecer propiedad () desde un script separado, como se mencionó anteriormente, el error aún ocurre.

Re: La propiedad de codificación no tenía dos númerosHaga esto después de ejecutar su secuencia de comandos para agregar la propiedad Codificación: haga clic en el triángulo rojo en el panel Tabla en la esquina superior izquierda de la tabla de datos y seleccione Copiar secuencia de comandos de tabla. Luego abra un nuevo editor de secuencias de comandos y pegue la secuencia de comandos. Examine los argumentos de Establecer propiedad. Debería ver una lista con dos números para el segundo argumento. Si no lo hace, entonces su script es incorrecto.
Re: La propiedad de codificación no tenía dos números
Excelente captura!Esto es lo que está en el guión de la tabla. Jugaré con mi codificación para obtener los valores necesarios allí.Gracias, @Mark_Bailey !
Mantendré este hilo abierto hasta que publique la resolución.
Re: La propiedad de codificación no tenía dos númerosEsta fue una solución simple. ¡Verificado trabajando con mis conjuntos de datos!
for( y = 1, y <= N Items( all_cols ), y++,
row() = y;
lims = Eval List( { col min( eval( all_cols[y] ) ), col max( eval( all_cols[y] ) ) } );
Eval( Eval expr ( all_cols[y] << Set Property( "Coding", Expr( lims ) ) ) );
);