Wie speichere ich ein Diagrammskript mit Datenausschlüssen?
Wir speichern Diagramme häufig als Skripte zur späteren Verwendung. Alles funktioniert gut, bis das Diagramm Datenausschlüsse enthält. Beispielsweise möchten wir die Genesung von Patienten grafisch darstellen, die (1) eine Impfung erhalten haben, im Vergleich zu (2) Patienten, die keine Impfung erhalten haben. Die beiden Diagramme sind identisch – dieselben Variablen, Achsen, Beschriftungen und Stil – außer dass (1) die (binäre) Bedingung „keine Impfung“ und (2) die Bedingung „Impfung“ ausschließt.
Wir gehen davon aus, dass sich das Diagramm selbst aktualisiert, wenn Datenausschlüsse geändert werden (das ist eine Funktion, kein Fehler). Gibt es eine Möglichkeit, die Datenausschlüsse im Skript des Diagramms zu speichern , sodass wir bei jeder Ausführung des Skripts ein Ergebnis sehen, das auf den Datenausschlüssen zum Zeitpunkt der Erstellung des Diagramms basiert?
Datenzusammenführung und -bereinigungMassenanpassungBetreff: Wie speichere ich Diagrammskripte mit Datenausschlüssen?Ich verstehe jetzt, dass beim Speichern des Skripts eines Diagramms die Datenauswahl nicht automatisch gespeichert wird. Wir fügen die Ausschlüsse manuell hinzu, basierend auf Ihrem Beispiel unten. Danke schön!
Betreff: Wie speichere ich Diagrammskripte mit Datenausschlüssen?Hier ist ein Beispiel für das Speichern und anschließende Verwenden einer Zeilenstatusspalte, um die Datentabelle wieder auf den Status zurückzusetzen, den sie hatte, als das ursprüngliche Diagramm ausgeführt wurde.
names default to here(1);
// Open a sample data table
dt = open("$SAMPLE_DATA/big class.jmp" );
// Set some exclusions and row coloring
dt << select where(:age == 12 & :sex == "F" );
dt << hide and exclude;
dt << color by column(:age);
// Run the graph to get the results desired
Graph Builder(
Size( 522, 486 ),
Show Control Panel( 0 ),
Variables( X( :age ), Group X( :sex ), Overlay( :age ) ),
Elements( Bar( X, Legend( 8 ) ) ),
SendToReport( Dispatch( {}, "400", LegendBox, {Set Title( "" )} ) )
);
// To save the data table status at the time of the graph, simply
// create a new row state column, and copy the row states to it
dt << new column("My Row States", rowstate);
dt:My Row States << copy from row states;
// To illustrate what would needed to be added to the Graph Script
// to recreate the environment it was originally run in, I will first
// clear all of the row states to bring the table back to the
// default blank row states
dt << clear row states;
// Now all that has to be done, is to copy the rowstates from the row state
// column back to the data table row states, and then rerun the graph
dt:My Row States << copy to row states;
Graph Builder(
Size( 522, 486 ),
Show Control Panel( 0 ),
Variables( X( :age ), Group X( :sex ), Overlay( :age ) ),
Elements( Bar( X, Legend( 8 ) ) ),
SendToReport( Dispatch( {}, "400", LegendBox, {Set Title( "" )} ) )
);
Ich glaube nicht, dass dies eine vollständige Antwort auf Ihre Antwort ist, aber ich war mir nicht sicher, wonach Sie sonst noch gefragt haben.Könnten Sie Ihre Frage noch einmal formulieren und genauere Angaben machen?
Betreff: Wie speichere ich Diagrammskripte mit Datenausschlüssen?Ein anderer Ansatz besteht darin, einen lokalen Datenfilter als Teil des Diagramms zu verwenden. Auf diese Weise kann der Benutzer einfach von einer Gruppe zur anderen wechseln.
Betreff: Wie speichere ich Diagrammskripte mit Datenausschlüssen?Danke, für die schnelle Antwort!
1) Können Sie auf eine Erklärung hinweisen, wie das geht? "Das Skript erfordert, dass JSL zu dem Skript hinzugefügt werden muss, das die Daten durchläuft und zu diesem Zeitpunkt die Auswahl trifft."
2) Wenn die obige Lösung es uns auch erlaubt, Ausschlüsse in demselben Datensatz anzugeben, dann sprechen Sie nicht weiter. Andernfalls verweisen Sie uns bitte auf eine Erklärung, wie dies zu tun ist: "Dann müsste das Grafikskript nur erweitert werden, um die gespeicherten Zeilenzustände aus der neuen Spalte in die Zeilenzustände der Datentabelle zu kopieren und dann das Diagramm auszuführen."
Betreff: Wie speichere ich Diagrammskripte mit Datenausschlüssen?Dazu gibt es verschiedene Möglichkeiten.Wenn Sie möchten, dass das Diagrammskript für eine neue Datentabelle ausgeführt wird, erfordert das Skript, dass JSL zu dem Skript hinzugefügt werden muss, das die Daten durchgeht und zu diesem Zeitpunkt die Auswahl trifft.Wenn die Aufgabe nur darin besteht, das Diagramm mit denselben Datentabelleneinstellungen erneut auszuführen, müssen Sie eine neue Spalte vom Typ „Zeilenstatus“ erstellen und dann die Zeilenstatus zum Zeitpunkt der Ausführung speichern des Diagramms in die neue Zeilenstatusspalte.Dann müsste das Grafikskript nur erweitert werden, um die gespeicherten Zeilenzustände aus der neuen Spalte in die Zeilenzustände der Datentabelle zu kopieren und dann das Diagramm auszuführen.