Abweichung der Berechnungsergebnisse, Spaltenmittelwert usw.Warum unterscheiden sich die Berechnungsergebnisse bei Verwendung von Variablen im Vergleich zu direkten Zeichenketten? Ich vermute, dass die Gruppierungsfunktion für den Variablenteil bei Verwendung von Variablen nicht korrekt funktioniert. Wie lässt sich dieses Problem beheben?
mit der folgenden Formel
Col Mean(
:data,
:A,
:B,
:C_D == "ccccccc"
)
Das ist die Formel.
Col Mean(
:data,
:A,
:B,
Column(Eval Insert("C_^get_input_1^" == get_input_2))
)
Automatisierung und SkripterstellungBetreff: Abweichung der Berechnungsergebnisse, Spaltenmittelwert usw.Tut mir leid, Leute. Ich habe vergessen zu erwähnen, dassget_input_1Undget_input_2kann davon ausgegangen werden, dass sie bereits als Zeichenketten vorliegen.
Betreff: Abweichung der Berechnungsergebnisse, Spaltenmittelwert usw.Die erste Funktion vergleicht eine Spalte mit einer Zeichenkette, bei der zweiten ist unklar, was genau verglichen wird (Zeichenkette mit Zeichenkette, was immer 1 oder 0 wäre?). Zumindest wird der Wert nicht ausgewertet; Sie müssen die Werte in der Formel selbst auswerten.
Fügen Sie einen Ausdruck in einen anderen ein, indem Sie Eval Insert, Eval Expr, Parse und Substitute verwenden.
Betreff: Abweichung der Berechnungsergebnisse, Spaltenmittelwert usw.Ich möchte dasselbe Ergebnis wie im Ausdruck der ersten Zeile erzielen. Als die Variablen als get_input_1="D" und get_input_2="cccccc" angegeben wurden, erwartete ich natürlich dasselbe Ergebnis, aber die Realität sah anders aus…
Betreff: Abweichung der Berechnungsergebnisse, Spaltenmittelwert usw.Eval(Substitute(
Expr(Col Mean(
:data,
:A,
:B,
_input1_ == _input2_
),
Expr(_input1_) = NameExpr(AsColumn(dt, get_input_1)),
Expr(_input2_) = get_input_2
)
));
Sie müssen jedoch eine neue Spalte und eine neue Formel zu diesem Beispiel hinzufügen.
Betreff: Abweichung der Berechnungsergebnisse, Spaltenmittelwert usw.
Column(Eval Insert("C_^get_input_1^" == get_input_2)) wird zu Column( "C_D" == "ccccccc" ausgewertet, daher wäre Ihre Formel
bearbeiten
Wenn man in Eval Insert() einen Nicht-String einfügt, wird dieser zu einem leeren String ausgewertet.
Col Mean(
:data,
:A,
:B,
Column( "" )
);
Das könnte der Grund sein, warum es nicht wie erwartet funktioniert. Jarmos Lösung sollte Ihren Wünschen entsprechen.
Betreff: Abweichung der Berechnungsergebnisse, Spaltenmittelwert usw.
Vielen Dank für Ihre Antworten. Ich entschuldige mich außerdem für meine verspäteten Rückmeldungen.
Ich habe den JSL-Code wie unten gezeigt geschrieben, aber es wird ein Fehler ausgegeben. Woran könnte das liegen?
Die Fehlermeldung lautet „unzureichende Argumente“ an der Stelle „Substitute/ ### /(Expr(“.
Data Table( "data_table" ) << New Column( Eval Insert("Xbar_^get_input_process^_^get_input_line^"),
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Eval(Substitute(
Expr(Col Mean(
:data,
:A,
:B,
_input1_ == _input2_
),
Expr(_input1_) = NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) = get_input_2
)
));
)) << Run Formulas;
Betreff: Abweichung der Berechnungsergebnisse, Spaltenmittelwert usw.Fügen Sie einen Ausdruck in einen anderen ein, indem Sie Eval Insert, Eval Expr, Parse und Substitute verwenden.
Vermutlich so etwas, aber ich kann es nicht testen, da mir die Daten und der frühere Teil des Skripts fehlen.
Names Default To Here(1);
dt = Data Table("data_table");
Eval(Substitute(
Expr(Data Table("data_table") << New Column(colname,
Numeric,
"Continuous",
Formula(Col Mean(:data, :A, :B, _input1_ == _input2_)),
)),
Expr(colname), Substitute(Xbar_^get_input_process^_^get_input_line^),
Expr(_input1_) = NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) = get_input_2
));
Betreff: Abweichung der Berechnungsergebnisse, Spaltenmittelwert usw.Vielen Dank für Ihre Berücksichtigung, auch wenn es schwierig war, zu experimentieren, ohne konkrete Daten liefern zu können.
Ich habe es wie folgt an meine Datentabelle angepasst.
Names Default To Here(1);
dt = Data Table("data_table");
Eval(Substitute(
Expr(Data Table("data_table") << New Column(colname,
Numeric,
"Continuous",
Formula(Col Mean(:data, :A, :B, _input1_ == _input2_)),
)),
Expr(colname), Eval Insert(Xbar_^get_input_process^_^get_input_line^),
Expr(_input1_) , NameExpr(AsColumn(dt, Eval Insert("new_^get_input_1^"))),
Expr(_input2_) , get_input_2
));