Zeilenweise bedingte BerechnungIch habe eine Datentabelle mit drei Spalten mit Prozessdaten und einer Spalte mit Qualitätsdaten. Ich möchte einen Wert berechnen (in neuen Spalten – jeweils für einen der Prozessparameter), wenn sich der Prozesswert zwischen zwei Zeilen ändert.
Daher muss JMP zunächst jede Zeile betrachten und dann feststellen, ob jede der Prozessvariablen geändert wurde (falls Funktion??).
Wenn Änderungen aufgetreten sind, berechnen Sie (Qualität(1)-Qualität(2))/(Prozesswert(1)-Prozesswert(2))
Qualitäts- und VerfahrenstechnikBetreff: Zeilenweise bedingte BerechnungSie können die Differenz zwischen Zeilen mit berechnen Dif() oder Verzögerung() .
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(3),
Compress File When Saved(1),
New Column("P", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 2])),
New Column("Q", Numeric, "Continuous", Format("Best", 12), Set Values([3, 3, 6]))
);
dt << New Column("", Numeric, Continuous, Formula(
difval1 = Dif(:P);
difval2 = Dif(:Q);
If(difval1 & difval2,
difval2 / difval1;
,
.
);
));
Bei Bedarf können Sie Unterausdruckswerte im Formeleditor untersuchen

Betreff: Zeilenweise bedingte BerechnungHallo.
Vielen Dank für Ihre schnelle Lösung. Im Skript erstellen Sie ein dt. Ich habe bereits einen Datensatz erstellt. Kann ich auch darauf verweisen?
Betreff: Zeilenweise bedingte BerechnungDu kannst. Wie Sie vorgehen sollten, hängt davon ab, woher Sie die Datentabelle erhalten. Wenn Sie es von irgendwoher öffnen mit Offen() ist der richtige Weg (weitere Informationen zur Skripterstellung finden Sie im Skriptindex (im JMP-Hilfemenü) und im Skripthandbuch).

Betreff: Zeilenweise bedingte BerechnungSie können die Formel auch direkt in Ihrer Datentabelle erstellen, ohne den Skripteditor verwenden zu müssen
difval1 = Dif(:P);
difval2 = Dif(:Q);
If(difval1 & difval2,
difval2 / difval1;
,
.
);