Sono all'inizio della creazione di uno script per trovare il delta tra due misurazioni per molte colonne.
Ho difficoltà a creare formule di colonna quando il nome della colonna ha un trattino ....
Il comando parse per rimuovere le virgolette cambia il trattino in un operando meno che quindi incasina ciò che sto cercando di ottenere.
Registro errori:
"_92MHz_test_data" imprevisto. Forse manca un ";" o ",".
Ecco lo script (che funziona se le colonne non hanno un operando nel nome.
Per esempio,
dt = tabella dati corrente();
Col_Name = "diff"; // column(5) - Column(300)
Col_Name1_char = char(nome colonna(5)); // "cestino di DWK112079-01_92MHz_test_data""
Col_Name2_char = char(nome colonna(300));// "bin di DWK112079-01_90MHz_test_data""
Col1_Name = (concat(":",(Col_Name1_char))); //":bin di DWK112079-01_92MHz_test_data";
Col2_Name = ((concat(":",Col_Name2_char))); // ":bin di DWK112079-01_90MHz_test_data";
Formula_I = ((concat(col1_Name, " - ", Col2_Name))); //Crea l'espressione della formula
a = Espr(Nuova colonna(X, formula(Z))); // Nuova colonna con nome Diff
b = sostituto(nome espr(a), Espr(X), Col_Nome, Espr(Z), parse(Formula_I)); // Questo ha un errore quando Colnames ha "-" nel nome
eval(b);
//Nota:
show(Formula_I, parse(Formula_I));
//Nota: Formula_I = ":bin di DWK112079-01_92MHz_test_data - :bin di DWK112079-01_new_updated_test_data";
//Note Analizza(formula_I) = :bin di DWK112079 - 1; Questo non è quello che voglio
Il "-" al centro del nome di una colonna viene interpretato da JMP come una sottrazione.Pertanto, è necessario indicare a JMP che l'intero termine è un nome di colonna.Il modo più semplice per farlo è utilizzare la struttura dei nomi di
":nome colonna"n
Quanto segue è una rielaborazione del tuo script con le modifiche apportate
names default to here(1);
dt = Current Data Table();
Col_Name = "diff"; // column(5) - Column(300)
Col_Name1_char = Char( Column Name( 5 ) ); // "bin of DWK112079-01_92MHz_test_data""
Col_Name2_char = Char( Column Name( 300 ) );// "bin of DWK112079-01_90MHz_test_data""
Col1_Name = (Concat( ":\!"", (Col_Name1_char), "\!"n" )); //":bin of DWK112079-01_92MHz_test_data";
Col2_Name = ((Concat( ":\!"", Col_Name2_char , "\!"n" ))); // ":bin of DWK112079-01_90MHz_test_data";
Formula_I = ((Concat( col1_Name, " - ", Col2_Name ))); //Make the formula expression
a = Expr(
New Column( X, formula( Z ) )
); // New column with name Diff
b = Substitute( Name Expr( a ), Expr( X ), Col_Name, Expr( Z ), Parse( Formula_I ) ); // This has error when Colnames has "-" in the name
Eval( b );
//Note:
Show( Forumula_I, Parse( Formula_I ) );
//Note : Formula_I = ":bin of DWK112079-01_92MHz_test_data - :bin of DWK112079-01_new_updated_test_data";
//Note Parse(formula_I) = :bin of DWK112079 - 1; This is not what I wantNon sarei mai stato in grado di capirlo.Grazie mille, funziona perfettamente!