La expresión no se evalúa.Siempre me desconcierta cómo usar Eval Expr correctamente. Me aparece una ventana emergente que me pide que seleccione un nombre de columna comodín y lo asigna como "Divisor".
nw = New Window( "Does the Data Contain Experimental Cells?",
<
<MODAL></MODAL>
<P>Luego intento evaluar el objeto en una fórmula de columna y cualquier combinación de Eval(Eval Expr( que use, nada parece funcionar.</P> <CODE class=" language-jsl">If( N Items( yVars ) == 0,
Data Table( "HIRP" ) << New Column( "Average Active Power",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If(
:Heater == "Reader", Col Mean( :HL_R_HEAT, :Heater ),
Contains( :Heater, "Writer" ),
Col Mean( :HL_W_HEAT, :Heater )
)
)
),
Eval(Eval Expr(Data Table( "HIRP" ) << New Column( "Average Active Power",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If(
:Heater == "Reader", Col Mean( :HL_R_HEAT, :Heater, As Column(Expr(Divider)) ),
Contains( :Heater, "Writer" ),
Col Mean( :HL_W_HEAT, :Heater, :HD_NUM, As Column(Expr(Divider)) )
)
)
)
)));
<LINGO-LABS id="lingo-labs-942626" slang="en-US" mode="CREATE">
<LINGO-LABEL>Automatización y secuencias de comandos</LINGO-LABEL>
</LINGO-LABS>
Re: La expresión no se evalúa.Cambiar
As Column(Expr(Divider))
A
Expr(NameExpr(As Column(dt, Divider)))
No es necesario usar NameExpr(), pero obtendrás fórmulas con un aspecto más "agradable" si lo utilizas.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
div = "weight";
Eval(EvalExpr(
dt << New Column("C", Numeric, Continuous, Formula(
:Height / Expr(NameExpr(AsColumn(dt, div)))
))
));
Además, puedes probar las evaluaciones de tus expresiones ejecutando solo la parte EvalExpr en lugar de toda la Eval(EvalExpr(...
Re: La expresión no se evalúa.Necesitaba un pequeño ajuste, pero funcionó. Gracias.
If( N Items( yVars ) == 0,
Data Table( "HIRP" ) << New Column( "Average Active Power",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If(
:Heater == "Reader", Col Mean( :HL_R_HEAT, :Heater ),
Contains( :Heater, "Writer" ),
Col Mean( :HL_W_HEAT, :Heater )
)
)
),
Eval(Eval Expr(Data Table( "HIRP" ) << New Column( "Average Active Power",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If(
:Heater == "Reader", Col Mean( :HL_R_HEAT, :Heater, Expr(NameExpr(As Column( Divider))) ),
Contains( :Heater, "Writer" ),
Col Mean( :HL_W_HEAT, :Heater, :HD_NUM, Expr(NameExpr(As Column( Divider))) )
)
)
)
)));
Re: La expresión no se evalúa.Jarmo
Ahora tengo algo que funciona, pero no entiendo por qué. ¿Existe alguna guía que describa claramente cómo se debe emplear la metodología de evaluación? Espero poder dedicar menos tiempo a buscar respuestas aquí.
Re: La expresión no se evalúa.Sesión 9: JSL avanzado
Guía de scripting > Métodos de programación > Expresiones avanzadas, macros y listas
Morgan, J. (2010). “Funciones de manejo de expresiones: Parte I.” JMPer Cable 26:15–19.