Kontrollgrenzen aus der Spalteneigenschaft abrufenIch habe dieses Thema früher gefunden, um die Spezifikationsgrenzen aus den Spalteneigenschaften abzurufen.
https://community.jmp.com/t5/Discussions/Get-column-Property-and-store-as-list/td-p/50885
Ähnliches muss ich allerdings auch mit den Kontrollgrenzen machen.Dafür funktioniert das gleiche Prinzip jedoch nicht.
CTRL = Column(colname) << Get Property( "Control Limits" );
LCL = CTRL["LCL"];
Rückgabe: Name nicht gefunden. beim Zugriff oder bei der Auswertung von 'Subscript' , CTRL[/*###*/"LCL"]
Ich kann nicht herausfinden, warum die Indizierung hier inkonsistent ist.Insgesamt scheint JSL beim Zugriff auf indizierte Objektfeldinformationen sehr inkonsistent zu sein.Fehlt mir etwas?Anscheinend verbringe ich die Hälfte meiner Zeit damit, Skripte zu schreiben und herauszufinden, wie ich auf die in Objekten eingebetteten Informationen zugreifen kann.
Betreff: Kontrollgrenzen aus der Spalteneigenschaft abrufenWow, das ist hässlich. Ich bin überrascht, dass es keine direkte Möglichkeit gibt, diese Daten abzurufen ... Ich denke, das ist ein weiterer Grund, mehr von meinem Code nach Möglichkeit außerhalb von JMP zu veröffentlichen.Ich schätze die Antwort jedoch besonders angesichts der Tiefe, die zur Erfüllung der Aufgabe erforderlich war.
Betreff: Kontrollgrenzen aus der Spalteneigenschaft abrufenEs ist nicht so einfach ... ich wünschte, es wäre so.Hier ist ein Code, den ich verwendet habe. Möglicherweise gibt es besseren Code. Ich habe ihn für die Grenzwerte für Einzelmessungen angepasst. Er kann jedoch erweitert werden
cLimits = dt:npn1 << get property( "control limits" );
For( i = 1, i <= N Items( cLimits ), i++,
If( Trim( Word( 1, Char( cLimits[i] ), "(,)" ) ) == "Individual Measurements",
IRLimits = Char( cLimits[1] );
k=2;
While( Word( k, IRLimits, "()" ) != "",
If(
Word( k, IRLimits, "()" ) == "Avg",
Avg = Word( k + 1, IRLimits, "()" ),
Word( k, IRLimits, "()" ) == "LCL",
LCL = Word( k + 1, IRLimits, "()" ),
Word( k, IRLimits, "()" ) == "UCL",
UCL = Word( k + 1, IRLimits, "()" )
);
k++;
);
)
);Betreff: Kontrollgrenzen aus der Spalteneigenschaft abrufenIch hatte die unterschiedliche Gruppierung bemerkt und ein Dutzend verschiedene Möglichkeiten ausprobiert, um zu versuchen, sie aus dem untergeordneten Objekt zu ziehen, ohne Erfolg.Der Debugger zeigt an, dass er meine Kontrollgrenzen für individuelle Messungen erhält, aber keine Form der Indizierung, die ich ausprobiert habe, schien in der Lage zu sein, die einzelnen Grenzwerte aus dem Objekt abzurufen.
Ich würde erwarten, dass ich so etwas tun kann
LCL = (STRG["Einzelmessungen"])["LCL"];
oder
LCL = CTRL("Einzelmessungen")["LCL"];
oder etwas Ähnliches wie in konventionellen Programmier-/Skriptsprachen, aber nichts schien zu funktionieren.Wie soll ich eigentlich an diese Daten gelangen?
Betreff: Kontrollgrenzen aus der Spalteneigenschaft abrufenSpezifikationsgrenzen sind bei weitem nicht so komplex wie Kontrollgrenzen.Für Spezifikationsgrenzen gibt es grundsätzlich LSL, Target und USL.Für Kontrollgrenzen können Sie aufgrund der unterschiedlichen Arten von Kontrollgrenzen mehrere unterschiedliche LCL-, Avg- und UCL-Gruppierungen haben.Siehe unten die Ausgabe der Struktur der Spezifikationsgrenzen und Kontrollgrenzen für dieselbe Spalte.
dt:npn1 << get property("spec limits") = {LSL(104.41), USL(131.89), Target(118.15)};
dt:npn1 << get property("control limits") = {XBar(Avg(115), LCL(110), UCL(120), Subgroup Size(3)), R(Avg(10), LCL(5), UCL(15), Subgroup Size(3))};
Daher muss das Abrufen und Parsen eines Kontrolllimits völlig anders sein als für Spezifikationslimits.