Hola a todos,
Importé archivos csv a JMP para obtener la tabla de datos (asignada como dt0) y la tabla de especificaciones (asignada como dt1) respectivamente. Me pregunto cómo obtener la especificación en la tabla de especificaciones (dt0) y establecer los límites de especificación de las columnas en la tabla de datos (dt0).
El problema que encontré es que las especificaciones no se pueden configurar correctamente:

Aquí están mis códigos:
Nombres predeterminados hasta aquí ( 1 );
archivos = Seleccionar archivo (
"Seleccionar archivo CSV" ,
"$Descargas" ,
{ "Archivos JMP|jmp;jsl;jrn" , "Todos los archivos|*" },
1 ,
0 ,
""
);
dt0 = Abierto (
archivos,
Importar ajustes(
Fin de línea (CRLF, CR, LF),
Fin de campo (coma, CSV ( 0 ) ),
Cotizaciones de tiras( 1 ),
Usar apóstrofe como comillas ( 0 ),
Usar configuración regional( 0 ),
Escanear todo el archivo ( 1 ),
Tratar las columnas vacías como numéricas ( 0 ),
ComprimirColumnasNuméricas( 0 ),
CompressCharacterColumns( 0 ),
ComprimirPermitirListaComprobar( 0 ),
Etiquetas( 1 ),
Inicio de nombres de columna ( 2 ),
Inicios de datos ( 8 ),
Líneas para leer( "Todo" ),
Regla del año ( "20xx" )
)
);
dt1 = Abierto (
archivos,
Importar ajustes(
Fin de línea (CRLF, CR, LF),
Fin de campo (coma, CSV ( 0 ) ),
Cotizaciones de tiras( 1 ),
Usar apóstrofe como comillas ( 0 ),
Usar configuración regional( 0 ),
Escanear todo el archivo ( 1 ),
Tratar las columnas vacías como numéricas ( 0 ),
ComprimirColumnasNuméricas( 0 ),
CompressCharacterColumns( 0 ),
ComprimirPermitirListaComprobar( 0 ),
Etiquetas( 1 ),
Inicio de nombres de columna ( 2 ),
Inicios de datos ( 5 ),
Líneas para leer( 2 ),
Regla del año ( "20xx" )
)
);
Para (yo= 13 , yo<= N columnas (dt0), i++,
Columna (dt0,i)<< Tipo de datos (Numérico);
Columna (dt0,i)<< Tipo de modelado ( "Continuo" );
);
Para (yo= 13 , yo<= N columnas (dt1), i++,
Columna (dt1,i)<< Tipo de datos (Numérico);
Columna (dt1,i)<< Tipo de modelado ( "Continuo" );
);
Para (yo= 13 , yo<= N columnas (dt1), i++,
USL temporal= Col Valor almacenado (dt1, yo, 1 ); //Asigne la especificación de la tabla de especificaciones dt1 a 'tempUSL' y 'tempLSL'
tempLSL= Col Valor almacenado (dt1, yo, 2 );
evaluar (
Expr evaluación (
Columna (dt0,i) << Establecer propiedad (
"Límites de especificaciones" ,
{LSL( exp. ( tempLSL ) ), USL( exp. (tempUSL)), Mostrar límites ( 1 )}
)
)
);
);
¿Algún consejo para solucionar este problema? Gracias
Veo lo que estás haciendo y tengo que decir que tu código se ve muy bien. También muy complejo.
Hay varias otras formas de lograr lo mismo mediante plataformas de secuencias de comandos que ya existen en JMP.
Aquí hay un par de ejemplos:
Este utiliza la plataforma de selección de procesos.
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
dt2 = Open( "$SAMPLE_DATA/CitySpecLimits.jmp" );
dt1 << Process Screening(
Y( :OZONE, :CO, :SO2, :NO ),
Use Limits Table(
1,
dt2,
Process Variables( :Column 1 ),
LSL( :_LSL ),
USL( :_USL ),
Target( :_Target ),
Go
)
);
Este utiliza la plataforma de capacidad de proceso
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = dt << Process Capability(
Process Variables( :OZONE, :CO, :SO2, :NO ),
Spec Limits(
Import Spec Limits(
"$SAMPLE_DATA/CitySpecLimits.jmp"
)
)
);
En este ejemplo, se abre un cuadro de diálogo que permite al usuario seleccionar la tabla de límites de especificaciones
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
obj = dt << Manage Spec Limits(
Y( dt << Get Column Group( "Processes" ) )
);
Este código básico que aprovecha las características de la plataforma también es mucho más fácil de mantener.
Espero que esto haya sido útil,
Salud,
B
Si asigna un número a 'tempUSL' y 'tempLSL' directamente, podría funcionar.
Pero necesito asignar los límites de especificación de la tabla de especificaciones.
Names Default To Here( 1 );
Files = Pick File(
"Select CSV File",
"$Downloads",
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
""
);
dt0 = Open(
Files,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
dt1 = Open(
Files,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 5 ),
Lines To Read( 2 ),
Year Rule( "20xx" )
)
);
For(i=13, i<=N Cols(dt0), i++,
Column(dt0,i)<<DATA type=""></DATA>