Erstellen einer temporären Datentabelle (?) zum Replizieren von t=0-Daten für den Graph BuilderIch versuche, mit Graph Builder Stabilitätsdaten zu visualisieren. Ich bin auf zwei Probleme mit der vorhandenen Datentabelle und dem Graph Builder-Skript/-Bericht gestoßen und würde mich über Vorschläge zur Lösung freuen!
In diesem ersten Fall muss ich eine temporäre Datentabelle erstellen, die die Stabilitätsbedingung „Umgebung“ als „0-Monats“-Daten für jede der anderen Stabilitätsbedingungen (25/60, 30/65 und 40/75) neu zuweist. Im folgenden Bericht können Sie sehen, dass „Umgebung“ in einer eigenen Kategorie steht, was eine umständliche Art ist, über anfängliche Testergebnisse nachzudenken. Ich möchte die eigentliche Datentabelle, in die ein Benutzer Daten eingeben würde, nicht ändern; ich versuche nur, die t=0-Umgebungsdaten für jede Bedingung (25/60, 30/65 und 40/75) grafisch zu replizieren.

Im zweiten Fall versuche ich nur, die Kategorie „Ambient“ so zu dimensionieren, dass nicht so viel toter Raum entsteht, bevor die nächste Kategorie (25/60) beginnt. In diesem Datensatz kann „Ambient“ nur bei t=0 auftreten, es gibt also keinen Grund, warum die anderen Monate (x-Achse) erscheinen sollten.

Dank im Voraus!
MassenanpassungQualitäts- und ProzesstechnikBetreff: Erstellen einer temporären Datentabelle (?) zum Replizieren von t = 0-Daten für den Graph BuilderDanke Jim.
Ich freue mich über Ihr Feedback. Ich habe am 5-tägigen Scripting-Kurs teilgenommen und den Scripting-Leitfaden viele, viele Male gelesen. Leider war nichts davon für mich oder andere Kollegen wirklich hilfreich. Beispiele sind für das, was wir tun, nicht relevant oder für unsere Anwendung nicht einfach zu interpretieren. Wir sind Wissenschaftler, die einfach versuchen, Daten auf eine Weise zu visualisieren, die den Industriestandards entspricht, und wurden beim Kauf angewiesen, dass die GUI uns „lehren“ würde, was wir wissen müssten. Dies war nicht der Fall, und viele, viele von uns sind außerordentlich frustriert, dass wir einen Superuser wie Sie brauchen, um an grundlegende Datenvisualisierungen heranzugehen, von denen wir uns alle einig sind, dass sie nützlich sind. Anscheinend sind diese Visualisierungen weder "einfach", noch ist die JSL-Sprache in unserer Fähigkeit, ohne weiteres zu programmieren. Es ist wirklich schade, eine solche Gelegenheit verpasst zu haben.
Nochmals vielen Dank für Ihre Hilfe. Sie sind offensichtlich sehr geschickt und haben ein echtes Talent für das Scripting.
Betreff: Erstellen einer temporären Datentabelle (?) zum Replizieren von t = 0-Daten für den Graph BuilderDie Plattformen Subset, Summary usw. verfügen über eine „unsichtbare“ Option, die verwendet werden kann, wodurch sie vor dem Benutzer verborgen werden.
Dies ist im Scripting Index und im Scripting Guide dokumentiert, die beide im Pulldown-Menü Hilfe verfügbar sind.Ich empfehle dringend, dass Sie sich die Zeit nehmen, den Scripting Guide zu lesen.
Betreff: Erstellen einer temporären Datentabelle (?) zum Replizieren von t = 0-Daten für den Graph BuilderJim,
Ich danke dir sehr. Das ist genau die Grafik, die ich erstellen möchte.
Gibt es eine Möglichkeit zu verhindern, dass die Datentabellen und Berichte, die der endgültigen Grafik zugrunde liegen, angezeigt werden? Die Datentabellen, die ich erstelle, werden von Wissenschaftlern mit wenig bis gar keiner JMP-Erfahrung verwendet. Ich versuche, ihnen zu helfen, sich auf die Wissenschaft zu konzentrieren, indem ich ihre Daten schnell visualisiere, und möchte den Prozess so „versteckt“ wie möglich halten. Es werden mehrere andere Skripte wie dieses in der Datentabelle gespeichert (jedes Skript zeigt ein anderes Produktattribut), daher mache ich mir Sorgen, dass die wachsende Anzahl von Fenstern überwältigend sein wird.
Nochmals vielen Dank. Ich schätze Ihre Hilfe sehr!
Beth.
Betreff: Erstellen einer temporären Datentabelle (?) zum Replizieren von t = 0-Daten für den Graph BuilderIch habe die Lösung für Ihre erste Frage, aber es ist zu spät in der Nacht, um an der zweiten Frage zu arbeiten.Wenn möglich, werde ich morgen daran arbeiten.
Aber hier ist die Lösung der ersten Frage, um alle Ambient 0-Daten auf alle anderen Speicherbedingungen zu replizieren.
Interaktiv würden Sie Folgendes tun:
- Wählen Sie alle Ambient-Zeilen in der Datentabelle aus
- Erstellen Sie mit Tables=>Subset eine neue Datentabelle, die nur die Umgebungsdaten enthält
- Löschen Sie die Spalte „Stabilitätsbedingung“. Sie wird nicht mehr benötigt, wie unten zu sehen ist
- Führen Sie unter Verwendung der ursprünglichen Datentabelle die Summary Platform Tables=>Summary aus
- Wählen Sie die Spalte Stabilitätsbedingung als Gruppierungsspalte aus
- OK klicken
- Löschen Sie die N-Zeilen-Spalte aus der neuen Datentabelle....es wird nicht benötigt
- Löschen Sie die Zeile mit Ambient als Wert für die Stabilitätsbedingung.
- Durch die Verwendung eines kartesischen Joins können wir nun alle möglichen Kombinationen der Zeilen in der untergeordneten Ambien-Datentabelle mit den Zeilen in der Übersichtsdatentabelle erstellen. Gehen Sie dazu in die zusammengefasste Datentabelle und wählen Sie Tabellen=>Verknüpfen.
- Wählen Sie die Umgebungsdatentabelle als Datentabelle aus, die mit der zusammengefassten Tabelle verknüpft werden soll
- Klicken Sie auf das Pulldown-Feld "By Matching Columns" und wählen Sie "Cartesian Join".
- Klicken Sie auf OK
- Als nächstes müssen wir eine Teilmenge der ursprünglichen Datentabelle erstellen, die alle Nicht-Ambient-Zeilen enthält.
- Gehen Sie zu einer der Ambient-Zeilen und klicken Sie mit der rechten Maustaste auf die Zelle mit dem Ambient-Wert und klicken Sie mit der rechten Maustaste und wählen Sie „Übereinstimmende Zellen auswählen“.
- Wir wollen jetzt die Zeilenauswahl umkehren, gehen Sie also zur Zeilenstatusspalte (die Spalte mit den Zeilennummern) und klicken Sie mit der rechten Maustaste auf eine der ausgewählten Zeilen und wählen Sie "Auswahl umkehren".
- Erstellen Sie mithilfe des Pulldown-Menüs Tables=>Subset ein Subset, das alle Spalten, aber nur die ausgewählten Zeilen enthält.
- Der letzte Schritt besteht darin, diese neue Teilmenge mit der Datentabelle zusammenzustellen, die durch den kartesischen Join generiert wurde.
- Gehen Sie zu Tabellen => Verketten
- Wählen Sie als zu verkettende Datentabelle die Datentabelle Cartesian Join aus
- Aktivieren Sie das Kontrollkästchen "An erste Tabelle anhängen".
- Klicken Sie auf OK
- Jetzt können Sie die Graph Builder Platform ausführen und das gewünschte Diagramm erstellen

- Unten ist ein Skript, das eine Beispieldatentabelle erstellt und dann mithilfe von JSL durch die oben definierten Schritte geht und die neue Teilmengen-Datentabelle erstellt
names default to here( 1 );
/*****************************************************************************/
// Create a sample data table and original graphs
/*****************************************************************************/
dt = new table(
"Example",
New Column( "Months of Storage" ),
New Column( "Stability Condition", character ),
New Column( "Lot", character ),
New Column( "API001 %LC",format("Percent",4,0) )
);
MoList = {0, 3, 6, 9, 12, 18};
StabList = {"Ambient", "25/60", "30/65", "40/75"};
LotList = {"001", "002", "003", "004", "005", "006"};
For( m = 1, m <= N Items( MoList ), m++,
For( s = 1, s <= N Items( StabList ), s++,
For( l = 1, l <= N Items( LotList ), l++,
For( i = 1, i <= 16, i++,
dt << add rows( 1 );
:Months of Storage[N Rows( dt )] = MoList[m];
:Stability Condition[N Rows( dt )] = StabList[s];
:Lot[N Rows( dt )] = LotList[l];
:Name( "API001 %LC" )[N Row( dt )] = Random Integer( 65, 110 ) / 100;
)
)
)
);
dt << select where( :Months of Storage == 0 & :Stability Condition != "Ambient");
dt << delete rows;
dt << select where( : Stability Condition == "Ambient" & :Months of Storage !=0);
dt << delete rows;
dt:stability condition << set property("value order",{Custom Order( {"Ambient", "25/60", "30/65", "40/75"} )});
dt << Graph Builder(
Size( 570, 488 ),
Show Control Panel( 0 ),
Variables(
X( :Lot ),
Y( :API001 %LC ),
Group X( :Months of Storage ),
Group Y( :Stability Condition )
),
Elements( Points( X, Y, Legend( 7 ), Jitter( "None" ) ) )
);
dt << Graph Builder(
Size( 570, 492 ),
Show Control Panel( 0 ),
Variables(
X( :Months of Storage ),
Y( :API001 %LC ),
Group X( :Stability Condition ),
Group Y( :Lot )
),
Elements( Points( X, Y, Legend( 7 ) ) )
);
// End of initial data table creation and original chart creation
/*****************************************************************************/
// Replicate the Ambient Month 0 values to all levels of Stability Condition
/*****************************************************************************/
// Create a new data table of just the Anbient data
dt << select where(:Stability Condition == "Ambient");
dtAmb = dt << subset( selected rows(1), selected columns(0));
// Delete the Stability Condition column
dtAmb << delete columns(:Stability Condition);
// Use the Summary Platform to create a table with just the unique Stability Condition values
dtSum = dt << Summary(
Group( :Stability Condition ),
Freq( "None" ),
Weight( "None" )
);
// Delete the N Rows Column;
dtSum << delete columns(:N Rows);
// Delete the Ambient row
dtSum << select where(:Stability Condition == "Ambient");
dtSum << delete rows;
// Change all of the
// Cartesian Join of the tables to generate all combinations of the two tables
dtJoin = dtSum <<
Join( With( dtAmb ), Cartesian Join );
// Now create a subset data table from the original data table with all non ambient rows
dt << select where( :Stability Condition != "Ambient");
dtNoAmbient = dt << subset(selected rows(1), selected columns(0));
// Concatenate the non ambient data with the data from the cartiesian data
dtNoAmbient << concatenate(dtJoin, append to first table);
// Create the Graph Builder map with the new data table
dtNoAmbient << Graph Builder(
Size( 570, 488 ),
Show Control Panel( 0 ),
Variables(
X( :Lot ),
Y( :API001 %LC ),
Group X( :Months of Storage ),
Group Y( :Stability Condition )
),
Elements( Points( X, Y, Legend( 7 ), Jitter( "None" ) ) )
);
// Clean up the no longer needed data tables
close( dtAmb, nosave );
close( dtSum, nosave );
close( dtJoin, nosave );