Frage zum Abrufen von Daten aus einer Diagrammausgabe mithilfe von Objekten in der Baumstruktur<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo, ich möchte Fallout-Daten für verschiedene Szenarien von Spezifikationsgrenzen erhalten. Ich habe es zuvor in einem anderen Skript durch die Spalten geschleift, wobei jede Spalte als Liste abgerufen wurde. Select_where () -Daten liegen über / unter den Spezifikationsgrenzen, aber ich wollte diesmal native JMP-Informationen verwenden.
Die Distributionsplattform von JMP zeigt die CPK-Analyse und den Fallout an, wenn Grenzwerte vorhanden sind. Wenn ich die Baumstruktur untersuche, werden die Fallout-Informationen in einem Objekt / einer Liste namens "numbercolbox (4)" angezeigt. Ich habe herausgefunden, wie ich die Fallout-Daten abrufen kann, und ich kann die Spezifikationsgrenzen füllen und die Verteilung für jedes meiner Limitsätze erneut ausführen, aber ich würde gerne wissen, wie zuverlässig diese Lösung ist. Wenn zum Beispiel ein anderer Benutzer eine andere Voreinstellung hat, zieht numbercolbox (4) immer die Fallout-Daten ab?
Ich denke, eine Alternative dazu ist xpaths, aber ich habe nicht viele Informationen dazu. Wenn dies eine anständige Lösung ist und jemand über eine Dokumentation verfügt, lass es mich wissen.
Beigefügt ist ein Skript, das tut, was ich will und für mich arbeitet. Sie können es ausführen und sehen, worüber ich spreche. Es verwendet Beispieldaten.
Um die Baumstruktur einer JMP-Ausgabe (Diagramm usw.) anzuzeigen, vergrößern Sie das Fenster, indem Sie bei gedrückter Strg-Umschalttaste mit der rechten Maustaste in den untersten oder ganz rechten Bereich klicken und "Baumstruktur anzeigen" auswählen. Siehe unten.
Vielen Dank,
-Mike

Betreff: Frage zum Abrufen von Daten aus einer Plotausgabe mithilfe von Objekten in der BaumstrukturIch habe den xpath-Code geändert, um es einfacher zu machen (zumindest für mich), und dies funktioniert für das, was ich brauche. Ich bin jedoch immer noch neugierig, warum der Code, den ich oben gepostet habe, nicht funktioniert, da die allgemeinere Nutzungsstruktur / der Code, den Sie verwenden, wirklich nützlich wäre.
Vielen Dank,
Mike
Namen standardmäßig hier ( 1 ) ;
testVar = 0 ;
testVar = 1 ; // Kommentar für nachfolgende Läufe
ob ( testVar .
öffnen ( "$ SAMPLE_DATA \ Semiconductor Capability.jmp" ) ;
myDist = Verteilung (
Stapel ( 1 ) .
Kontinuierliche Verteilung (
Säule ( : NPN1 ) .
Anpassen der Zusammenfassungsstatistik (
Robustes Mittel ( 1 ) .
Robustes Std ( 1 )
)
) .
Kontinuierliche Verteilung (
Säule ( : PNP1 ) .
Anpassen der Zusammenfassungsstatistik (
Robustes Mittel ( 1 ) .
Robustes Std ( 1 )
)
) .
Kontinuierliche Verteilung (
Säule ( : PNP2 ) .
Anpassen der Zusammenfassungsstatistik (
Robustes Mittel ( 1 ) .
Robustes Std ( 1 )
)
)
) ;
) ;
reportObj = myDist << xpath ( "// OutlineBox [text () = 'Auswertungsstatistik']" ) ;
zum ( ich = 1 . ich <= Nitems ( reportObj ) . ich ++ Show ( reportObj [ ich ] << titel bekommen ) ; ) ;
strList = {} ;
reportObj = myDist << xpath ( "// OutlineBox [text () = 'Auswertungsstatistik'] // StringColBox" ) ;
// für (i = 1, i <= Nitems (reportObj), i ++, show (reportObj.) << erhalten); strList = reportObj << get;);
Show ( reportObj [ 1 ] << erhalten ) ;
strList = reportObj [ 1 ] << erhalten ;
Versuchen ( rMnIndx = loc ( strList . "Robustes Mittel" ) . rMnIndx = - 1 ) ;
Versuchen ( rStdIndx = loc ( strList . "Robuste Standardabweichung" ) . rStdIndx = - 1 ) ;
statList = {} ;
reportObj = myDist << xpath ( "// OutlineBox [text () = 'Auswertungsstatistik'] // NumberColBox" ) ;
// für (i = 1, i <= Nitems (reportObj), i ++, show (reportObj.) << erhalten); statList = reportObj << get;);
Show ( reportObj [ 1 ] << erhalten ) ;
statList = reportObj [ 1 ] << erhalten ;
ob ( rMnIndx > 0 & rStdIndx > 0 .
robustMean = statList [ rMnIndx ] ;
robustStd = statList [ rStdIndx ] ;
.
robustMean = - 999 ;
robustStd = - 999 ;
) ;
Show ( robustMean . robustStd ) ;
Betreff: Frage zum Abrufen von Daten aus einer Plotausgabe mithilfe von Objekten in der BaumstrukturHi Philip,
Endlich bin ich dazu gekommen, Xpath-Code auszuprobieren, und ich habe Probleme damit. Ich habe dein Poster als Referenz verwendet. Können Sie mir helfen herauszufinden, was ich falsch mache?
Ich glaube, ich habe das schon mal gesehen, aber ich kann mich nicht erinnern ... was ist der ' . ' in dem " list_testSS.Key "Variablenname für?
Scheint an eine Struktur in C zu erinnern, aber ich konnte keine jsl-Dokumentation darauf finden. Ich war mir nicht sicher, ob es richtig in meinem Code eingerichtet wurde.
Vielen Dank,
Mike
Namen standardmäßig hier ( 1 ) ;
öffnen ( "$ SAMPLE_DATA \ Semiconductor Capability.jmp" ) ;
myDist =
Verteilung (
Stapel ( 1 ) .
Kontinuierliche Verteilung (
Säule ( : NPN1 ) .
Horizontales Layout ( 1 ) .
Vertikale ( 0 ) .
Achsen auf der linken Seite ( 1 ) .
Anpassen der Zusammenfassungsstatistik (
Std Err Mean ( 0 ) .
Oberes mittleres Konfidenzintervall ( 0 ) .
Unteres mittleres Vertrauensintervall ( 0 ) .
N fehlt ( 1 ) .
Angebot ( 1 ) .
Robustes Mittel ( 1 ) .
Robustes Std ( 1 )
)
)
) ;
reportObj = myDist << xpath ( "// OutlineBox [text () = 'Auswertungsstatistik'] / ancestor :: OutlineBox [last ()]" ) ;
list_groupName = reportObj << GetTitle ;
list_testSS.Key = ( reportObj << xpath ( "// * [enthält (Text (), 'Auswertungsstatistik')] / Folgendes Geschwister :: * // StringColBox" )) << Erhalten ;
list_testSS.Val = ( reportObj << xpath ( "// * [enthält (Text (), 'Auswertungsstatistik')] / Folgendes Geschwister :: * // NumberColBox" )) << Erhalten ;
list_levelString = ( reportObj << xpath ( "// OutlineBox [text () = 'Long Term Sigma'] // StringColBoxHeader [text () = 'Capability'] / .." )) << erhalten ;
list_levelMeans = ( reportObj << xpath ( "// OutlineBox [text () = 'Long Term Sigma'] // NumberColBoxHeader [text () = 'Index'] / .." )) << erhalten ;
Betreff: Frage zum Abrufen von Daten aus einer Plotausgabe mithilfe von Objekten in der BaumstrukturEin klarer Vorteil von xpath ist, wenn sich in einem JMP-Berichtsfenster mehrere Displaybox-Objekte befinden. Angenommen, Sie haben einige Analysen durchgeführt und sind am Ende gelandet
mit 100 Outlineboxes, mit xpath können Sie Folgendes tun:
rpt << xpath ("// OutlineBox")
und eine Liste von Verweisen auf ALLE Gliederungsfelder wird zurückgegeben. (wobei rpt auf das verweist JMP-Berichtfenster)
Beim traditionellen Displaybox-Scripting müssen Sie zunächst wissen, wie viele generiert wurden, dann eine Schleife von 1 nach N und auf jede Gliederungsbox über ihren Index zugreifen. Die Indizierung kann insbesondere dann ein Problem sein, wenn die Reihenfolge nicht eindeutig ist (verschachtelte Gliederungsboxen). Dies können viele weitere Codierungsschritte sein.
Was die Geschwindigkeit anbelangt, so war für mich ein Unterschied erkennbar, da XPath besonders bei großen Gruppen viel schneller ausgeführt wurde. Ich denke nicht, dass es bei dem von Ihnen beschriebenen "Single Shot" -Szenario einen Unterschied macht, jedoch müsste eine formale Timing-Studie durchgeführt werden.
Betreff: Frage zum Abrufen von Daten aus einer Plotausgabe mithilfe von Objekten in der BaumstrukturDanke, ich habe eine Weile nach einer solchen Dokumentation gesucht. Ich werde ein bisschen herumspielen und sehen, wie es läuft. Scheint unkompliziert, aber auch sprachabhängig, was wahrscheinlich ok ist für das, was ich brauche.
Warum ist xpath effizienter als Display Tree Scripting? Ist es nur effizienter zu codieren, erhält man Informationen schneller zurück? Angenommen, es wird nur ein Objekt zurückgegeben, z. B. ein Verteilungsbildfeld, und Sie kennen dessen Namen oder Nummer. Wenn Sie dies 100 oder 1000 Mal tun, ist einer spürbar schneller als der andere? Es scheint, als würde der Bericht selbst generiert (bevor das Objekt zurückgezogen wird), wo die Ausführungszeit ist.
Betreff: Frage zum Abrufen von Daten aus einer Plotausgabe mithilfe von Objekten in der BaumstrukturAuf der Konferenz gab es dieses Jahr ein recht gutes Poster zu XPath.
https://community.jmp.com/docs/DOC-8116
Sie gehen einige Beispiele aus der Praxis mit der Struktur von JMPs durch.
Betreff: Frage zum Abrufen von Daten aus einer Plotausgabe mithilfe von Objekten in der BaumstrukturVielen Dank! Es ist mir jetzt offensichtlich.
Ich werde sehen, ob andere Benutzer andere Sprachen verwenden, und dort einige Haken für andere verwendete Sprachen einfügen. Es ist nicht kugelsicher, sollte aber für unsere Zwecke in Ordnung sein. Vielen Dank.
Betreff: Frage zum Abrufen von Daten aus einer Plotausgabe mithilfe von Objekten in der BaumstrukturVielleicht das offensichtliche, aber bitte beachten Sie, dass das Skript in mehreren Gebietsschemas ausgeführt werden muss, wenn Sie Anzeigefelder nach ihren Namen indexieren.
Betreff: Frage zum Abrufen von Daten aus einer Plotausgabe mithilfe von Objekten in der BaumstrukturDanke, die Tatsache, dass sich diese Zahl (in meinem Fall 4) ändern könnte, ist irgendwie das, was ich erwartet hatte. Ihre Lösung funktioniert perfekt.
Ich habe auch Probleme, die oberen und unteren Spezifikationsgrenzen mit Variablen (Listen) festzulegen. Wenn ich wie im Beispiel eine hart codierte Liste verwende, funktioniert das einwandfrei, aber ich kann nicht einfach ein einfaches Listenelement verwenden. Ich benutze das eval (substitute ()) wahrscheinlich nicht richtig, aber meiner Erfahrung nach ist dies einer der verwirrendsten Teile von JSL.
Anregungen zur Behebung dieses Problems?
.
| | | mySpecsExpr = expr (als Spalte (yParamNames) ) << set-Eigenschaft ("Spec Limits", {aaa, bbb}))); |
| | | show (eval (dList [1])) , eval (dList [2]) ); // <- diese werden im Protokollfenster gut ausgewertet |
| | | eval (stellvertretend (mySpecsExpr, expr (aaa)), eval (dList [1]) , Ausdruck (bbb), eval (dList [2]) )); |
Edit: Eigentlich konnte ich es anhand dieser Anleitung herausfinden: 46953 - Skript für Spalteneigenschaften mit Variablen
Das funktioniert. Aber wenn jemand eine einfachere Antwort hat, würde ich es schätzen.
| | | | Eval ( |
| | | | | Eval Expr ( |
| | | | | | als Spalte (yParamNames ) << Eigenschaft festlegen ( |
| | | | | | | "Spezifikationsgrenzen", |
| | | | | | | {LSL (Ausdruck (eval (dList [1])) )), USL (Ausdruck (eval (dList [2])) ))} //, Ziel (Ausdruck (tLimit)), Limits anzeigen (0)} |
| | | | | | ) |
| | | | | ) |
| | | | ); |
Betreff: Frage zum Abrufen von Daten aus einer Plotausgabe mithilfe von Objekten in der BaumstrukturIch weiß nicht, wie robust die Nummerierung für diese bestimmte Plattform oder diesen Knoten wäre. Im Allgemeinen ist die Nummerierung jedoch nicht festgelegt, sondern kann sich mit der Gesamtkomplexität des Berichts ändern.
Eine alternative Methode zum Adressieren eines bestimmten Anzeigefeldes besteht darin, seinen Namen zu verwenden. Platzhalter werden ebenfalls unterstützt. Ich denke, dass die Namen robuster sind als die Nummerierung, da sie sich zwischen den JMP-Versionen selten ändern, während das Layout und Standard Die Anzahl der Optionen kann je nach Version und Voreinstellungen variieren.
ich n im Kontext Ihres Beispielskripts drei Zeilen darunter würden alle das gleiche Ergebnis liefern:
Bericht ( distObj ) [ Nummer Col Box ( 4 )] << erhalten ;
Bericht ( distObj ) [ Nummer Col Box ( "% Tatsächlich" )] << erhalten ;
Bericht ( distObj ) [ Nummer Col Box ( "%?" )] << erhalten ;