Hola, estaba escribiendo JSL para procesar un archivo fuente con la esperanza de reutilizarlo o adaptarlo. Para ello, creé algunas variables muy simples que solo modificaría ocasionalmente.
Aquí hay una breve sección de JSL que crea variables y las usa en una fórmula de columna. Estos no son los nombres originales. Los modifiqué para simplificarlos:
JMP v18.2.0
dt = current data table();
VariableA = 42; // A value I intend to change occasionally depending on the details of the source data
VariableB = 1; // Another value I'll change depending on the source data.
dt << New Column( "A_New_Formula_Coumn",
numeric,
ordinal,
Formula( :An_Existing_Data_Column - VariableA * VariableB )
);
dt << New Column( "A_Simpler_New_Formula_Coumn",
numeric,
ordinal,
Formula( :An_Existing_Data_Column - 42 )
); I've run this in an external script and from a script in the table. Both seem to have no trouble when the script is first run. The problem is that "VariableA" and "VariableB" are used in the column formula, almost as if they are local variables. But they aren't defined anywhere. So when I close JMP down completely and reopen it - only then do I get a warning that there is something wrong with the formula:
En realidad, solo quiero que el script aplique ESTA fórmula a la nueva columna, es decir, que evalúe la parte de la variable del script. Pero no sé cómo hacerlo.
Preferiría NO utilizar variables de tabla.
¡Gracias por leer!
Tendrás que evaluarlos Insertar una expresión en otra usando Eval Insert, Eval Expr, Parse y Substitute
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
myvar = 100;
Eval(EvalExpr(
dt << new column("A", Numeric, Continuous, Formula(
:height * Expr(myvar)
));
));