Hilfe bei einer if-AnweisungHallo,
Vermutlich übersehe ich hier etwas grundlegendes. Ich versuche, die Werte einer Spalte zu ändern, indem ich eine Kombination aus zwei anderen Spaltenwerten verwende. Ich gebe die folgende if-Anweisung ein und die Spaltenwerte ändern sich nicht. Was fehlt mir hier? Danke für alle Tipps und Ratschläge.
Names Default To Here( 1 );
dt = Data Table( "20210811Miflezet_CAPCMP.jmp" );
dt << Begin Data Update;
If( :justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "center"
,
:Rile_Calc3 == "center"
,
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "center"
,
:Rile_Calc3 == "center"
,
:justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "left"
,
:Rile_Calc3 == "right"
,
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "left"
,
:Rile_Calc3 == "left"
,
:justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "right"
,
:Rile_Calc3 == "left"
,
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "right"
,
:Rile_Calc3 == "right"
);
dt << End Data Update;
DatentabelleSkriptingRe: Hilfe bei einer if-AnweisungSie können entweder For Each Row oder Set Each Value verwenden. Unten ist ein Beispiel:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
For Each Row(
If(:sex == "F",
:age = .
);
);
dt:weight << Set Each Value(
If(:sex == "M",
.,
:height
);
);Re: Hilfe bei einer if-AnweisungDanke für die Antwort! Wie die verschiedenen Scripting-Anleitungen zeigen, sollte es das Richtige sein, aber hier hat es nicht funktioniert. Ich gehe davon aus, dass etwas mit der Datentabelle und der gesamten Verarbeitung, die ich bereits für diese Variablen durchgeführt habe, nicht stimmte. Schließlich bestand die Problemumgehung darin, die beiden Nominalspalten zu einer zu verketten und dann die dort erhaltenen Ausdrücke zu den gewünschten Ergebnissen umzucodieren. Danke noch einmal.
Re: Hilfe bei einer if-AnweisungIn Ihrer ursprünglichen JSL möchten Sie wahrscheinlich (edit: auch) ändern
Rile_Calc3 == "center" // compare. the result of the compare (0 or 1) will be the result of the if(), see below
zu
Rile_Calc3 = "center" // assign value
JSL if-Anweisungen geben einen Wert zurück; du könntest es schreiben als
:Rile_Calc3 = If(
:justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "center", "center",
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "center", "center",
:justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "left", "right",
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "left", "left",
:justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "right", "left",
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "right", "right",
:Rile_Calc3 // or "Unknown" ? depends how you want to handle the unexpected case.
);
Wenn Sie wissen, dass es keine unerwarteten Fälle gibt, können Sie die letzte Sonst-Klausel weglassen. Aber die Natur unerwarteter Fälle besteht darin, dass sie auftauchen, wenn sie am wenigsten erwartet werden.
Wenn Geheimnisse