Ciao a tutti,
Ho importato i file csv in JMP per ottenere rispettivamente la tabella dei dati (assegnata come dt0) e la tabella delle specifiche (assegnata come dt1). Mi chiedo di ottenere le specifiche nella tabella delle specifiche (dt0) e impostare i limiti delle specifiche delle colonne nella tabella dei dati (dt0).
Il problema che ho riscontrato è che le specifiche non possono essere impostate correttamente:

Ecco i miei codici:
I nomi predefiniti sono qui ( 1 );
File = Scegli File (
"Seleziona file CSV" ,
"$Download" ,
{ "File JMP|jmp;jsl;jrn" , "Tutti i file|*" },
1 ,
0 ,
""
);
dt0 = Aprire (
File,
Impostazioni di importazione(
Fine riga (CRLF, CR, LF),
Fine del campo( Virgola, CSV( 0 ) ),
Striscia citazioni( 1 ),
Usa l'apostrofo come virgolette( 0 ),
Usa impostazioni internazionali( 0 ),
Scansiona l'intero file( 1 ),
Tratta le colonne vuote come numeriche( 0 ),
CompressNumericColumns( 0 ),
ComprimiCarattereColonne( 0 ),
CompressAllowListCheck( 0 ),
Etichette( 1 ),
Nomi di colonna Inizio( 2 ),
I dati iniziano( 8 ),
Righe da leggere( "Tutto" ),
Regola dell'anno( "20xx" )
)
);
dt1 = Aprire (
File,
Impostazioni di importazione(
Fine riga (CRLF, CR, LF),
Fine del campo( Virgola, CSV( 0 ) ),
Striscia citazioni( 1 ),
Usa l'apostrofo come virgolette( 0 ),
Usa impostazioni internazionali( 0 ),
Scansiona l'intero file( 1 ),
Tratta le colonne vuote come numeriche( 0 ),
CompressNumericColumns( 0 ),
ComprimiCarattereColonne( 0 ),
CompressAllowListCheck( 0 ),
Etichette( 1 ),
Nomi di colonna Inizio( 2 ),
I dati iniziano( 5 ),
Righe da leggere( 2 ),
Regola dell'anno( "20xx" )
)
);
Per (io= 13 , io<= N Col (dt0), i++,
Colonna (dt0,i)<< Tipo di dati (Numerico);
Colonna (dt0,i)<< Tipo di modellazione ( "Continuo" );
);
Per (io= 13 , io<= N Col (dt1), i++,
Colonna (dt1,i)<< Tipo di dati (Numerico);
Colonna (dt1,i)<< Tipo di modellazione ( "Continuo" );
);
Per (io= 13 , io<= N Col (dt1), i++,
tempUSL= Col Valore memorizzato (dt1, io, 1 ); //Assegna la specifica dalla tabella delle specifiche dt1 a 'tempUSL' e 'tempLSL'
tempLSL= Col Valore memorizzato (dt1, io, 2 );
Valutazione (
Espr (
Colonna ( dt0,i ) << Imposta proprietà (
"Limiti delle specifiche" ,
{LSL( Espr ( tempLSL ) ), USL( Espr ( tempUSL ) ), Mostra limiti( 1 )}
)
)
);
);
Qualche consiglio per affrontare questo problema? Grazie
Vedo cosa stai facendo e devo dire che il tuo codice sembra molto bello. Anche molto complesso.
Esistono molti altri modi per ottenere lo stesso risultato tramite piattaforme di scripting già esistenti in JMP.
Ecco un paio di esempi:
Questo utilizza la piattaforma di screening dei processi
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
)
);
Questo utilizza la piattaforma di capacità di processo
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"
)
)
);
In questo esempio, si apre una finestra di dialogo per consentire all'utente di selezionare la tabella dei limiti delle specifiche
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
obj = dt << Manage Spec Limits(
Y( dt << Get Column Group( "Processes" ) )
);
Questo codice di base che sfrutta le funzionalità della piattaforma è anche molto più facile da mantenere.
Spero che questo sia stato utile,
Saluti,
B
Se assegni direttamente un numero a "tempUSL" e "tempLSL", potrebbe funzionare.
Ma devo assegnare i limiti delle specifiche dalla tabella delle specifiche.
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>