Filtro della tabella datiCiao,
Si prega di vedere il prossimo codice.
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 ) )
)
)
);
Per favore, esponimi lo scopo di Eval (Eval Expr
Grazie!
Ri: Filtraggio tabella datiCiao,
La funzione Eval Expr () cerca il suo argomento per le funzioni Expr (). Quando individua un Expr (), valuta l'argomento e lo sostituisce con il suo valore. L'Eval esterno () valuta l'intera espressione dopo la valutazione e la sostituzione.
Ad esempio dal tuo estratto di script, quando iage è 1 e isex è anche 1, il codice che viene valutato da Eval () è simile a 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" )
)
Si noti che la clausola Where () sopra ora ha i valori delle variabili.
Ti incoraggio a dare un'occhiata all'articolo Funzioni di gestione delle espressioni: Parte I - Scioglimento di Expr (), NameExpr (), Eval (), ... Enigma di Joseph Morgan per una spiegazione molto più approfondita.
Spero che questo sia utile!
Wendy
Ri: Filtraggio tabella datila linea di codice
where( age == Expr( thisAge ) & sex == Expr( thisSex ) )
ha le variabili di memoria incorporate nella linea.
Eval Expr (.........)
prende tutto il codice con nell'espressione
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 ) )
)
e lo valuterà, che fondamentalmente significherà in questo caso, che sostituirà la variabile "thisAge" e "thisSex" con i loro valori attuali.
L'esterno Eval () quindi prende i risultati dell'Eval Expr e esegue quel codice