Übergeben einer Variable an ein Cusum-SkriptHallo Leute,
Wenn ich das folgende Skript ausführe, wird der Zielwert gemäß der Variable „Targ“ von 8 nicht an das CuSum-Diagramm übergeben. Stattdessen wird ein Zielwert von 8,09629 berechnet und verwendet. Was ist hier los und wie übergebe ich einen Zielwert von 8 an das Skript?
Danke
Names Default To Here( 1 );
targ = 8;
dt = Open( "$SAMPLE_DATA/Quality Control/Oil1 Cusum.jmp" );
obj = dt << CUSUM Control Chart( Y( :weight ), X( :hour ), Target (targ), Sigma (0.05), head start (0.05)
);
Automatisierung und SkriptingBetreff: Übergeben einer Variablen an ein Cusum-SkriptSie können es dort beispielsweise mit Eval(EvalExpr()) auswerten.
Names Default To Here(1);
targ = 8;
dt = Open("$SAMPLE_DATA/Quality Control/Oil1 Cusum.jmp");
Eval(EvalExpr(
obj = dt << CUSUM Control Chart(
Y(:weight),
X(:hour),
Target(Expr(targ)),
Sigma(0.05),
head start(0.05)
);
));
Betreff: Übergeben einer Variablen an ein Cusum-SkriptPerfekt. Danke.
Betreff: Übergeben einer Variablen an ein Cusum-SkriptWie würde ich basierend auf der obigen Lösung jetzt etwas Ähnliches für mehrere CuSum-Diagramme implementieren, bei denen „By:“ verwendet wird, die aber alle je nach Tag unterschiedliche Zielwerte haben? Im folgenden Skriptbeispiel gilt also: Wenn Tag = 1, Ziel = 6. Wenn Tag = 2, Ziel = 7 usw. usw.
Die Namen werden standardmäßig hier verwendet(1);
Ziel = 6;
dt = Öffnen("$SAMPLE_DATA/Qualitätskontrolle/Vial-Füllgewichte.jmp");
Eval(Ausw.Ausdr.(
obj = dt << CUSUM-Kontrollkarte(
Y(:Füllgewicht),
X(:Beispiel),
Ziel(Ausdruck(Ziel)),
Von (:Tag)
);
));
Names Default To Here(1);
targ = 8;
dt = Open("$SAMPLE_DATA/Quality Control/Oil1 Cusum.jmp");
Eval(EvalExpr(
obj = dt << CUSUM Control Chart(
Y(:weight),
X(:hour),
Target(Expr(targ)),
Sigma(0.05),
head start(0.05)
);
));
Betreff: Übergeben einer Variablen an ein Cusum-SkriptEs wird etwas komplizierter, wenn Sie die Variable By verwenden möchten. Ich würde höchstwahrscheinlich eine Schleife über alle Plattformen ausführen (dies kann zwischen den JMP-Versionen unterschiedlich sein). Dies gibt hoffentlich eine Vorstellung davon, was Sie tun könnten
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Quality Control/Vial Fill Weights.jmp");
targs = ["1" => 5, "2" => 6, "3" => 7, "4" => 8, "5" => 9];
Eval(
Eval Expr(
ccs = dt << CUSUM Control Chart(
Y(:Fill Weight),
X(:Sample),
By(:Day)
)
)
);
For Each({cur_cc}, ccs,
cur_rep = Report(cur_cc);
cur_day = Word(-1, (cur_rep << get title), "=");
Eval(EvalExpr(
cur_cc << Target(Expr(targs[cur_day]));
));
);
Im Grunde habe ich ein assoziatives Array „spec“, dann erhalte ich den „gefilterten“ Wert mit Word(-1,...), rufe damit den Wert aus dem assoziativen Array ab und verwende ihn, um das Ziel festzulegen
Betreff: Übergeben einer Variablen an ein Cusum-SkriptFantastisch. Vielen Dank.
Betreff: Übergeben einer Variablen an ein Cusum-SkriptVielen Dank für die Lösung
Mehr anzeigen...Es klingt, als ob Ihr Skript ein Problem hat, bei dem der Zielwert gerundet oder neu berechnet wird, was zu einem Wert von 8,09629 statt der gewünschten 8 führt. Um sicherzustellen, dass der Zielwert von 8 korrekt an das CuSum-Diagramm übergeben wird, überprüfen Sie Ihr Skript auf Rundungs- oder Berechnungsfunktionen, die den Zielwert ändern könnten. Stellen Sie sicher, dass der Zielwert explizit festgelegt und ohne Änderungen verwendet wird. Überprüfen Sie die Datentypen und stellen Sie sicher, dass keine impliziten Konvertierungen die Genauigkeit beeinträchtigen. Schulfristen können überwältigend sein, aber mit
https://liahelp.com ist es viel einfacher zu bewältigen. Die Site bietet akademische Schreibdienste wie Essays und Forschungsarbeiten an, die alle garantiert originell sind. Ihr Kundensupport ist schnell und hilfreich und stellt sicher, dass Sie das bekommen, was Sie brauchen. Ich finde es auch toll, dass sie Überarbeitungen anbieten, sodass das Endprodukt genau das ist, was ich wollte. Ich empfehle es auf jeden Fall für Studenten!