Einstellung mithilfe von JSL, sodass im Kontrolldiagramm keine Chargen angezeigt werden, für die Daten für einen bestimmten Parameter fehlen.Als Thema.
Normalerweise geben wir in JSL Chargen an (dargestellt durch eine bestimmte Spalte), für die wir Punkte auf der Kontrollkarte wie folgt darstellen:
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :Batch ),
Where(
:Batch == {"01/10/2022", "01/11/2022", "01/12/2022", "01/13/2022"}
),
Display( :Batch, N Items( 15 ), Find( Set Text( "" ) ) )
)
), Wie können wir jedoch verlangen, dass alle Chargen berücksichtigt werden, mit Ausnahme derjenigen, für die wir für einen bestimmten Parameter N/A (leeres Feld in der Datentabelle) haben?
JMP-Version: 16.
Automatisierung und SkripterstellungBetreff: Einstellung mithilfe von JSL, sodass im Kontrolldiagramm keine Chargen angezeigt werden, für die Daten für einen bestimmten Parameter fehlen.Eine Möglichkeit wäre, ein assoziatives Array zu verwenden, um alle eindeutigen Werte abzurufen, und dann nur die nicht fehlenden Werte beizubehalten. Anschließend könnten Sie dies als Liste an den lokalen Datenfilter übergeben. Beispiel unten:
Names Default To Here (1);
//open file and delete a few data points
dt = open ("$SAMPLE_DATA/Abrasion.jmp");
for each ({i}, 6::9,
:Date[i] = .
);
//get non-missing
lstdates = matrix (Associative Array (:Date) << Get Keys);
lstdates = as list(lstdates[loc(!Is Missing(lstdates))]);
//launch cc
cc = Control Chart Builder( Variables( Y( :Abrasion ) ), Show Control Panel( 0 ), );
//launch data filter
ldf = cc << Local Data Filter(
Add Filter(
columns( :Date ),
Where( :Date == lstdates ),
Display( :Date, N Items( 5 ) )
)
);
/*JMP STATISTICAL DISCOVERY LLC (“JMP”) PERMITS THE USE OF THIS COMPUTER SOFTWARE CODE (“CODE”) ON AN AS-IS BASIS AND AUTHORIZES YOU TO USE THE CODE SUBJECT TO THE TERMS LISTED HEREIN. BY USING THE CODE, YOU AGREE TO THESE TERMS. YOUR USE OF THE CODE IS AT YOUR OWN RISK. JMP MAKES NO REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRIGEMENT, AND TITLE, WITH RESPECT TO THE CODE.
You may use the Code solely as part of a software product you currently have licensed from JMP, JMP’s parent company SAS Institute Inc. (“SAS”), or one of JMP’s or SAS’s subsidiaries or authorized agents (the “Software”), and not for any other purpose. The Code is designed to add functionality to the Software but has not necessarily been tested. Accordingly, JMP makes no representation or warranty that the Code will operate error-free. JMP is under no obligation to maintain, support, or continue to distribute the Code.
Neither JMP nor its licensors shall be liable to you or any third-party for any general, special, direct, indirect, consequential, incidental, or other damages whatsoever arising out of or related to your use or inability to use the Code, even if JMP has been advised of the possibility of such damages. Except as otherwise provided above, the Code is governed by the same agreement that governs the Software. If you do not have an existing agreement with JMP or SAS governing the Software, you may not use the Code.
JMP and all other JMP Statistical Discovery LLC product or service names are registered trademarks or trademarks of JMP Statistical Discovery LLC in the USA and other countries. ® indicates USA registration. Other brand and product names are registered trademarks or trademarks of their respective companies.
*/Betreff: Einstellung mithilfe von JSL, sodass im Kontrolldiagramm keine Chargen angezeigt werden, für die Daten für einen bestimmten Parameter fehlen.Ich bin ein großer Fan der Verwendung von Transformationsspalten direkt in Plattformen.So habe ich den Kontrolldiagrammteil des folgenden Skripts erstellt:
- Erstellen Sie das Kontrolldiagramm mit allen Daten
- Klicken Sie in der Systemsteuerung mit der rechten Maustaste auf „Datum“ und wählen Sie „Formel“.
- Fügen Sie die Funktionen „Fehlt“ und „Nicht“ hinzu, sodass die Formel wahr ist, wenn die Spalte „Datum“ nicht fehlt, und schließen Sie das Dialogfeld
- Klicken Sie mit der rechten Maustaste auf die neue Spalte und benennen Sie sie in „HasDate“ um.
- Klicken Sie mit der rechten Maustaste auf das blaue Dreieck neben der neuen Spalte und ändern Sie sie in den Datentyp „Nominal“.
- Fügen Sie einen lokalen Datenfilter hinzu. Die transformierte Spalte wird automatisch in der Liste der verfügbaren Spalten angezeigt
Folgendes sollten Sie erhalten:

Und hier ist das Skript, um es neu zu erstellen:
Names Default To Here (1);
dt = open ("$SAMPLE_DATA/Abrasion.jmp");
dt << Control Chart Builder(
Transform Column( "HasDate", Nominal, Formula( !Is Missing( :Date ) ) ),
Variables( Y( :Abrasion ) ),
Show Control Panel( 0 ),
Local Data Filter( Add Filter( columns( :HasDate ), Where( :HasDate == 1 ) ) )
);
Wenn Sie entschieden haben, dass dies eine hilfreiche Spalte für die Erstellung einer visuellen Darstellung oder für eine Analyse ist, können Sie mit der rechten Maustaste darauf klicken und sie zur Datentabelle hinzufügen.
Betreff: Einstellung mithilfe von JSL, sodass im Kontrolldiagramm keine Chargen angezeigt werden, für die Daten für einen bestimmten Parameter fehlen.Sehr schön, @ich h !
Betreff: Einstellung mithilfe von JSL, sodass im Kontrolldiagramm keine Chargen angezeigt werden, für die Daten für einen bestimmten Parameter fehlen.Danke schön. Ich denke, Ihre Antwort kommt meinen Wünschen nahe und nur eine geringfügige Änderung des Codes würde es mir ermöglichen, das gewünschte Ergebnis zu erzielen. Leider stehe ich am Anfang meiner Reise mit dem JMP SL. Ich wäre Ihnen dankbar, wenn Sie mir helfen könnten, einen Code zu erhalten, der das, was ich erreichen möchte, vollständig umsetzen würde. Daher werde ich versuchen, mein Problem besser zu erklären.
Ich muss sagen, dass ich eine Schleife verwende, um Kontrolldiagramme für verschiedene Parameter aus der Datentabelle ausführen zu lassen.Ich habe Probleme damit, wie ich mit Ihrem vorherigen Tipp den Code so ändern kann, dass die i-te Spalte als die Spalte verwendet wird, nach der gefiltert werden soll. Ich habe :Column(i) versucht, aber ich glaube nicht, dass das der richtige Weg ist ...
Ich teile einen Codeausschnitt aus meinem Versuch zu erklären, was ich meine.
For( i = 2, i <= 5, i++,
dt << Control Chart Builder(
lstdates = Matrix( Associative Array( :Column( i ) ) << Get Keys );
lstdates = As List( lstdates[Loc( !Is Missing( lstdates ) )] );
Show Two Shewhart Charts( 0 );,
Sort by Row Order( 1 ),
Include Missing Categories( 0 ),
Show Excluded Region( 0 ), //sprawdź które to które
Show Limit Summaries( 0 ),
Variables( Subgroup( :Batch ), Y( :Column( i ) ) ),
Chart(
Points( Statistic( "Individual" ) ),
Limits( Sigma( "Levey Jennings" ) ),
Warnings( Test 1( 1 ), Test 2( 1 ), Test 3( 1 ), Test 4( 1 ) )
),
ldf = cc << Local Data Filter(
Add Filter( columns( :Column( i ) ), Where( :Column( i ) == lstdates ), Display( :Column( i ), N Items( 5 ) ) )
),
SendToReport(
Dispatch( {}, "graph display 1 title", TextEditBox, {Set Text( "Levey Jennings chart of " || Nazwy[i] )} ),
Dispatch( {}, "Subgroup display 1 title", TextEditBox, {Set Text( "Batch numer" )} )
)
);
)
);
Betreff: Einstellung mithilfe von JSL, sodass im Kontrolldiagramm keine Chargen angezeigt werden, für die Daten für einen bestimmten Parameter fehlen.Wissen Sie vielleicht nicht, was ich stattdessen schreiben soll: Datum, wenn ich die Schleife „for“ für jeden kontinuierlichen Parameter in meiner Datentabelle verwenden möchte?
Betreff: Einstellung mithilfe von JSL, sodass im Kontrolldiagramm keine Chargen angezeigt werden, für die Daten für einen bestimmten Parameter fehlen.Dieses Beispiel soll Ihnen zeigen, wie Sie alle fortlaufenden Spalten in eine Liste aufnehmen und diese Spalten dann durchlaufen. Wenn Sie mehrere Spalten betrachten, haben Sie übrigens entweder die modellgesteuerte multivariate Regelkarte oder die Prozess-Screening-Plattform in Betracht gezogen? Beide zeichnen sich durch die Optimierung von Regelkarten für mehrere Ausgaben aus.
Names Default To Here( 1 );
//open sample data table
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
//get all numeric continuous colums, return list as strings
lstcols = dt << Get Column Names( Numeric, Continuous, String );
//run an analysis for each column in the list
For Each( {i}, lstcols,
dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( Column( i ) ) ), //Use each column
Elements( Points( X, Y, Legend( 3 ) ) )
)
);
/*JMP STATISTICAL DISCOVERY LLC (“JMP”) PERMITS THE USE OF THIS COMPUTER SOFTWARE CODE (“CODE”) ON AN AS-IS BASIS AND AUTHORIZES YOU TO USE THE CODE SUBJECT TO THE TERMS LISTED HEREIN. BY USING THE CODE, YOU AGREE TO THESE TERMS. YOUR USE OF THE CODE IS AT YOUR OWN RISK. JMP MAKES NO REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRIGEMENT, AND TITLE, WITH RESPECT TO THE CODE.
You may use the Code solely as part of a software product you currently have licensed from JMP, JMP’s parent company SAS Institute Inc. (“SAS”), or one of JMP’s or SAS’s subsidiaries or authorized agents (the “Software”), and not for any other purpose. The Code is designed to add functionality to the Software but has not necessarily been tested. Accordingly, JMP makes no representation or warranty that the Code will operate error-free. JMP is under no obligation to maintain, support, or continue to distribute the Code.
Neither JMP nor its licensors shall be liable to you or any third-party for any general, special, direct, indirect, consequential, incidental, or other damages whatsoever arising out of or related to your use or inability to use the Code, even if JMP has been advised of the possibility of such damages. Except as otherwise provided above, the Code is governed by the same agreement that governs the Software. If you do not have an existing agreement with JMP or SAS governing the Software, you may not use the Code.
JMP and all other JMP Statistical Discovery LLC product or service names are registered trademarks or trademarks of JMP Statistical Discovery LLC in the USA and other countries. ® indicates USA registration. Other brand and product names are registered trademarks or trademarks of their respective companies.
*/Betreff: Einstellung mithilfe von JSL, sodass im Kontrolldiagramm keine Chargen angezeigt werden, für die Daten für einen bestimmten Parameter fehlen.Ich glaube, ich verstehe nicht, warum es in meinem Skript funktionieren würde, auf eine bestimmte Spalte anhand ihres Namens (z. B. „:name“) zu verweisen, bei „column(i)“ jedoch nicht (das weiß ich im Code). Oben habe ich einen Fehler gemacht, indem ich :column(i) anstelle von Column(i) geschrieben habe, aber die Korrektur hat nichts geändert ...)