Filtrado de tablas de datosHola,
Por favor vea el siguiente código.
dt = Open( "$sample_data/big class.jmp" );
ages = Data Table( "big class" ) << Summary( Group( :age ), Freq( "None" ), Weight( "None" ) );
sexes = Data Table( "big class" ) << Summary( Group( :sex ), Freq( "None" ), Weight( "None" ) );
For( iage = 1, iage <= N Rows( ages ), iage++,
thisAge = ages:age[iage];
For( isex = 1, isex <= N Rows( sexes ), isex++,
thisSex = sexes:sex[isex];
Eval(
Eval Expr(
gb = dt << Graph Builder(
Size( 508, 438 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
where( age == Expr( thisAge ) & sex == Expr( thisSex ) )
)
)
);
Por favor expóngame el propósito de Eval (Eval Expr
¡Gracias!
Re: Filtrado de tablas de datosHola,
La función Eval Expr () busca en su argumento las funciones Expr (). Cuando localiza un Expr (), evalúa el argumento y lo reemplaza con su valor. El Eval () externo evalúa la expresión completa después de que se produce la evaluación y el reemplazo.
Por ejemplo, de su extracto de script, cuando iage es 1 e isex también es 1, el código que evalúa Eval () se ve así para JMP:
gb = dt << Graph Builder(
Size( 508, 438 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
where( age == 12 & sex == "F" )
)
Observe que la cláusula Where () anterior ahora tiene los valores de las variables.
Os animo a que echéis un vistazo al artículo. Funciones de manejo de expresiones: Parte I - Desentrañar Expr (), NameExpr (), Eval (), ... Adivinanza por Joseph Morgan para una explicación mucho más completa.
¡Espero que esto sea útil!
Wendy
Re: Filtrado de tablas de datosla linea de codigo
where( age == Expr( thisAge ) & sex == Expr( thisSex ) )
tiene las variables de memoria incrustadas en la línea.
Eval Expr (.........)
toma todo el código con la expresión
gb = dt << Graph Builder(
Size( 508, 438 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
where( age == Expr( thisAge ) & sex == Expr( thisSex ) )
)
y lo evaluará, lo que básicamente significará en este caso, que reemplazará la variable "thisAge" y "thisSex" con sus valores actuales.
La evaluación externa () toma los resultados de la evaluación Expr y ejecuta ese código.