Estoy en los comienzos de hacer un script para encontrar el delta entre dos medidas para muchas columnas.
Tengo dificultades para hacer fórmulas de columna cuando el nombre de la columna tiene un guión....
El comando de análisis para eliminar las comillas cambia el guión a un operando menos que luego interfiere con lo que estoy tratando de lograr.
Registro de errores:
Inesperado "_92MHz_test_data". Quizás falta un ";" o ",".
Aquí está el script (que funciona si la(s) columna(s) no tienen un operando en el nombre.
P.ej,
dt = tabla de datos actual();
Col_Name = "diferencia"; // columna(5) - Columna(300)
Col_Name1_char = char(nombre de columna(5)); // "contenedor de DWK112079-01_92MHz_test_data""
Col_Name2_char = char(nombre de columna(300));// "bin of DWK112079-01_90MHz_test_data""
Col1_Name = (concat(":",(Col_Name1_char))); //":bin de DWK112079-01_92MHz_test_data";
Col2_Name = ((concat(":",Col_Name2_char))); // ":bin de DWK112079-01_90MHz_test_data";
Formula_I = ((concat(col1_Name, " - ", Col2_Name))); //Hacer la expresión de la fórmula
a = Expr(Nueva columna(X, fórmula(Z))); // Nueva columna con nombre Diff
b = replace(name expr(a), Expr(X), Col_Name, Expr(Z), parse(Formula_I)); // Esto tiene un error cuando Colnames tiene "-" en el nombre
evaluar(b);
//Nota:
mostrar (Fórmula_I, analizar (Fórmula_I));
//Nota: Formula_I = ":bin of DWK112079-01_92MHz_test_data - :bin of DWK112079-01_new_updated_test_data";
//Nota Parse(formula_I) = :bin of DWK112079 - 1; Esto no es lo que quiero
JMP interpreta el "-" en medio del nombre de una columna como una resta.Por lo tanto, debe indicarle a JMP que el término completo es un nombre de columna.La forma más fácil de hacer esto es usar la estructura de nombres de
":nombre de la columna"n
Lo siguiente es una reelaboración de su secuencia de comandos con los cambios realizados.
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 wantNunca hubiera sido capaz de resolver esto.Muchas gracias, funciona perfectamente!