Script per ignorare la modifica di una colonna se la colonna non è presenteCiao a tutti,
Esiste un modo in cui un pezzo di script può essere automaticamente ignorato se la colonna di destinazione non è presente? Ad esempio, ho lo script mostrato di seguito e talvolta non è disponibile un "Numerical C" (è un pezzo di automazione che può o meno avere 3 variabili). La sceneggiatura attualmente si blocca su questo pezzo quando non è possibile trovare il "Numero C"; idealmente vorrò creare uno script con più "Numerici #" che ignorerà automaticamente quel pezzo di script se non è presente:
Tabella dati ( "Sottoinsieme 5 gennaio" ) ;
Colonna ( "Colonna" ) << Tipo di dati ( Numerico ) ;
Colonna ( "Colonna" ) << Tipo di modellazione ( Continuo ) ;
Colonna ( "Dati" ) << Tipo di dati ( Numerico ) ;
Colonna ( "Dati" ) << Tipo di modellazione ( Continuo ) ;
Colonna ( "Numero A" ) << Tipo di dati ( Numerico ) ;
Colonna ( "Numero A" ) << Tipo di modellazione ( Continuo ) ;
Colonna ( "Numero B" ) << Tipo di dati ( Numerico ) ;
Colonna ( "Numero B" ) << Tipo di modellazione ( Continuo ) ;
Colonna ( "Numero C" ) << Tipo di dati ( Numerico ) ;
Colonna ( "Numero C" ) << Tipo di modellazione ( Continuo ) ;
Grazie,
Joe
Ri: Script per saltare la modifica di una colonna se la colonna non è presenteEcco uno script che prende ciò che hai detto di aver provato e lo corregge in modo che funzioni.Ho anche annotato lo script per aiutare a capire cosa sta facendo ciascuna affermazione
// Set a variable "dt" to point to the data table you want to work on
// In the example you showed, it was a table called "Jan 5 Subset"
dt = Data Table("Jan 5 Subset");
// Now request to get from the data table, now referenced by the
// variable "dt" and return the list as strings
// Using the Contains function, we will check to see if a column
// named "Numerical A" is found in the returned list of column
// names. If it is, the comparison will be true and the statements
// following the "," will be executed
IF( Contains(dt << Get column names(string), "Numerical A"),
// Set the Data Type and Modeling Type for the column "Numerical A"
Column("Numerical A") <<DATA type=""></DATA>Ri: Script per saltare la modifica di una colonna se la colonna non è presenteIl secondo pezzo di scripting funziona perfettamente, grazie mille!Ri: Script per saltare la modifica di una colonna se la colonna non è presenteCiao Jim,
Grazie per la risposta veloce Ho provato la funzione principale:
dt = Tabella dati ( "Sottoinsieme 5 gennaio" );
Se ( Contiene (dt < < Ottenere colonna nomi(stringa), "Colonna" ),
Colonna ( "Colonna" ) < < Dati Tipo ( Numerico ) < < Modellazione Tipo (Continuo)
);
Tuttavia non sono sicuro di cosa inserire dove si trova "(string)" nello script?
Al momento lo script sembra non funzionare su questa riga con "Invia oggetto scriptabile". Il mio script attuale per questo sarebbe:
SE ( Contiene ( dt << Ottieni i nomi delle colonne ( corda ) , "Numero A" ) ,
"Numero A" ) << Tipo di dati ( Numerico ) << Tipo di modellazione ( Continuo ) ;
Mi scuso se c'è qualcosa di veramente ovvio che mi manca qui, grazie in anticipo.
Ri: Script per saltare la modifica di una colonna se la colonna non è presenteCi sono un paio di modi in cui lo faccio......
Il primo è collocare le istruzioni che devono essere qualificate in una funzione SE.La soluzione più formale sarebbe ottenere i nomi delle colonne dalla tabella dati e quindi basare la condizione IF sul fatto che la colonna sia stata trovata
dt = Data Table( "Jan 5 Subset" );
If( Contains( dt << get column names( string ), "Column" ),
Column( "Column" ) << Data Type( Numeric ) << Modeling Type( Continuous )
);
Il secondo metodo consiste nel consentire a JMP di ignorare eventuali errori rilevati utilizzando una funzione Try
Try( Column( "Column" ) << Data Type( Numeric ) << Modeling Type( Continuous ) );
L'istruzione potrebbe non riuscire, ma JMP continuerà l'esecuzione