Hallo,
Ich bin neu im JMP-Scripting und habe versucht, ein Skript für einen bestimmten Prozess zu schreiben, der mit einer Datentabelle zum Arbeiten gegeben ist. Um zu erklären, was ich will, ist hier eine grobe Beispieltabelle.

Ich möchte ein Skript schreiben, das jede Zeile in der Spalte „Schrittname“ iterativ auf den Wert „Schlaf“ überprüft. Wenn es zu einer Zeile mit „Schlaf“ gelangt, überprüft es den entsprechenden Wert in der Spalte „Geschwindigkeit“. Dann soll das Skript alle vorherigen Zeilen überprüfen, die dieselben Werte in der Spalte „Geschwindigkeit“ aufweisen. Während es denselben Wert in der Spalte „Geschwindigkeit“ aufweist, überprüft es anschließend, ob in der Spalte „Material“ bereits Werte vorhanden sind. Wenn in der Spalte „Material“ ein Wert vorhanden ist, nimmt es diesen Wert und den entsprechenden Wert in der Spalte „Geschwindigkeit“ und gibt sie in einer neuen Tabelle aus, wie folgt:

Ich habe die Idee, dass dies eine umfangreiche For-Schleife erfordern würde, aber ich weiß nicht, wie ich das angehen soll. Ich wäre für jeden Vorschlag, wie ich dieses Skript schreiben könnte, sehr dankbar. Vielen Dank
Wäre es basierend auf Ihren Beispieldaten ausreichend, einfach alle Zeilen mit fehlendem Material zu entfernen und alle Werte des Schrittnamens auf „Ruhezustand“ zu setzen?
Ich glaube ja, es sollte ausreichen, einfach die Zeilen mit fehlendem Material zu entfernen und die restlichen Werte des Schrittnamens auf „Ruhezustand“ zu setzen. Wie würde ich ein Skript dafür schreiben?
Dies kann auch interaktiv von JMP aus erfolgen, aber es ist für mich schneller, es einfach als Skript zu schreiben, also hier ist es. Beachten Sie, dass die Tabelle etwas anders ist als Ihre (andere Spaltennamen und -werte).
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(10),
Compress File When Saved(1),
New Column("Step", Character, "Nominal", Set Values({"W", "E", "P", "F", "S", "C", "W", "P", "S", "F"})),
New Column("S", Character, "Nominal", Set Values({"F", "F", "F", "F", "F", "S", "S", "S", "S", "S"})),
New Column("M", Character, "Nominal", Set Values({"", "F", "", "P", "", "", "S", "G", "", ""}))
);
wait(1); // demo purposes
dt << Select Where(Is Missing(:M)) << Delete Rows; // << Get Rows Where() / << Where() are generally faster than select where
wait(1); // demo purposes
Column(dt, "Step") << Set Each Value("S");Ich habe dieses Skript für meine Verwendung in meiner Datentabelle geändert und es sieht gut aus, vielen Dank!