Filtrage de la table de donnéesSalut,
S'il vous plaît voir le code suivant.
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 ) )
)
)
);
S'il vous plaît expliquez-moi le but de Eval (Eval Expr
Merci!
Re: Filtrage de la table de donnéesBonjour,
La fonction Eval Expr () recherche dans son argument les fonctions Expr (). Lorsqu'il localise un Expr (), il évalue l'argument et le remplace par sa valeur. Eval () externe évalue l'expression entière après cette évaluation et son remplacement.
Par exemple, dans votre extrait de script, lorsque iage a la valeur 1 et isex, la valeur 1, le code évalué par Eval () ressemble à ceci pour 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" )
)
Notez que la clause Where () ci-dessus contient maintenant les valeurs de variable.
Je vous encourage à jeter un coup d'oeil à l'article Fonctions de gestion des expressions: Partie I - Dévoiler les expressions Expr (), NameExpr (), Eval (), ... Énigme par Joseph Morgan pour une explication beaucoup plus complète.
J'espère que ceci est utile!
Wendy
Re: Filtrage de la table de donnéesla ligne de code
where( age == Expr( thisAge ) & sex == Expr( thisSex ) )
a les variables de mémoire intégrées dans la ligne.
Eval Expr (.........)
prend tout le code avec dans l'expression
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 ) )
)
et l'évaluera, ce qui signifiera essentiellement dans ce cas, qu'il remplacera les variables "thisAge" et "thisSex" par leurs valeurs actuelles.
Le Eval extérieur () prend ensuite les résultats du Eval Expr et exécute ce code