Der Ausdruck wird nicht ausgewertet.Ich bin immer noch ratlos, wie man Eval Expr richtig verwendet. Es erscheint ein Popup, das nach einem Platzhalter für den Spaltennamen fragt und diesen als „Divider“ zuweist.
nw = New Window( "Does the Data Contain Experimental Cells?",
<
<MODAL></MODAL>
<P>Dann versuche ich, das Objekt in einer Spaltenformel auszuwerten, und egal welche Kombination von Eval(Eval Expr( ich verwende, nichts scheint zu funktionieren.</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>Automatisierung und Skripterstellung</LINGO-LABEL>
</LINGO-LABS>
Betreff: Ausdruck wird nicht ausgewertet.Ändern
As Column(Expr(Divider))
Zu
Expr(NameExpr(As Column(dt, Divider)))
NameExpr() ist nicht unbedingt notwendig, aber Sie erhalten dadurch "schöner aussehende" Formeln.
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)))
))
));
Außerdem können Sie Ihre Ausdrucksauswertungen testen, indem Sie nur den EvalExpr-Teil anstelle des gesamten Eval(EvalExpr(...) ausführen.
Betreff: Ausdruck wird nicht ausgewertet.Eine kleine Anpassung war nötig, aber es hat funktioniert. Danke!
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))) )
)
)
)
)));
Betreff: Ausdruck wird nicht ausgewertet.Jarmo
Ich habe zwar etwas, das funktioniert, verstehe aber nicht, warum. Gibt es irgendwo eine klare Beschreibung der Evaluierungsmethodik? Ich hoffe, hier nicht mehr so viel Zeit mit der Suche nach Antworten verbringen zu müssen.
Betreff: Ausdruck wird nicht ausgewertet.Sitzung 9: Fortgeschrittenes JSL
Skripting-Leitfaden > Programmiermethoden > Erweiterte Ausdrücke, Makros und Listen
Morgan, J. (2010). „Funktionen zur Ausdrucksverarbeitung: Teil I.“ JMPer Cable 26:15–19.