Expression non évaluée.Je suis toujours perplexe quant à la bonne utilisation de la fonction Eval Expr. J'obtiens une fenêtre contextuelle qui me demande de sélectionner un nom de colonne générique et me l'attribue comme « Diviseur ».
nw = New Window( "Does the Data Contain Experimental Cells?",
<
<MODAL></MODAL>
<P>J'essaie ensuite d'évaluer l'objet dans une formule de colonne et quelle que soit la combinaison de Eval(Eval Expr( que j'utilise, rien ne semble fonctionner.</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>Automatisation et scriptage</LINGO-LABEL>
</LINGO-LABS>
Re: Expression non évaluée.Changement
As Column(Expr(Divider))
À
Expr(NameExpr(As Column(dt, Divider)))
La fonction NameExpr() n'est pas nécessaire, mais elle vous permettra d'obtenir des formules plus esthétiques.
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)))
))
));
De plus, vous pouvez tester l'évaluation de vos expressions en exécutant uniquement la partie EvalExpr au lieu de l'ensemble Eval(EvalExpr(...
Re: Expression non évaluée.J'ai dû faire une petite retouche, mais ça a fonctionné. Merci.
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: Expression non évaluée.Jarmo
J'ai trouvé une solution qui fonctionne, mais je ne comprends pas pourquoi. Existe-t-il une documentation expliquant clairement comment appliquer la méthodologie d'évaluation ? J'espère ainsi passer moins de temps à chercher des réponses ici.
Re: Expression non évaluée.Séance 9 : JSL avancé
Guide de programmation > Méthodes de programmation > Expressions avancées, macros et listes
Morgan, J. (2010). « Fonctions de traitement des expressions : Partie I. » JMPer Cable 26:15–19.