JSL im Hintergrund ausführen, ohne dass Fenster auftauchenHallo,
Neuer JSL-Benutzer hier. Ich habe eine verschachtelte for-Schleife, in der ich eine bivariate Plattform verwende, um Rsq für jedes Paar zu extrahieren und eine verkettete Datentabelle zu erstellen, die schließlich alle Rsq-Werte für alle Paare enthält. Am Ende kann ich die gewünschte Ausgabe erhalten. Während das Skript ausgeführt wird, werden jedoch temporäre Tabellen angezeigt, und ich kann sie scheinbar nicht ausblenden oder schließen (Inhalte in einer anderen Tabelle posten).
Gibt es eine Möglichkeit, einen Schalter umzulegen und alle Popup-Fenster auszuschalten? Wenn nicht, hat jemand einen Vorschlag, wie man verhindern kann, dass der Bildschirm während der Ausführung ständig Tabellen anzeigt? Die Ausgabe des Skripts während der Ausführung befindet sich im Anhang.
Das Skript ist unten
For( i = 1, i <= 5, i++,
For (j= 1, j <= 5, j++,
biv = dt << Bivariate(
Y( ParmColumns[i] ),
X( ParmColumns[j] ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Invisible
);
rbiv = biv << Report;
tb = rbiv[Table Box( 1 )];
mcdt = tb << Make Combined Data Table << Show Window( 1 );
if (counter == 0 ,
combineddt = mcdt
);
if (counter > 0 ,
combineddt << Concatenate(
mcdt,
"Append to first table"
);
);
counter ++;
rbiv << Close Window;
mcdt << Invisible;
combineddt << Invisible;
wait(.1);
);
);
// Select and delete all rows that are empty
combineddt << Select Where(:"Column 1" != "RSquare") << Delete Rows;
combineddt << Select Where(:X == :Y) << Delete Rows;
//save stacked data table
combineddt << Save (Output_File );
// Close data table and do not save JMP tables. CSV files are already saved.
Close All( Data Tables, NoSave );

Qualitäts- und VerfahrenstechnikBetreff: JSL im Hintergrund ausführen, ohne dass Fenster auftauchenDanke @Mark_Bailey . Mir gefällt, wie rationalisiert der Code die multivariate Funktion verwendet, anstatt das, was ich mit einer komplizierten verschachtelten for-Schleife erreichen wollte.
Viel zu lernen! 

Betreff: JSL im Hintergrund ausführen, ohne dass Fenster auftauchenDanke @gzmorgan0
Vielen Dank, dass Sie sich die Zeit genommen haben, auf diese Anfrage zu antworten 
Betreff: JSL im Hintergrund ausführen, ohne dass Fenster auftauchenDas Entfernen von wait(...) kann ausreichend sein. Das gibt dem Betriebssystem Zeit, das Fenster anzuzeigen. Warten ist normalerweise nicht erforderlich, oder es gibt eine Alternative, die dies nicht benötigt, z. B. <
bearbeiten:
anstatt
mcdt << Invisible; // does not work this way
welche @gzmorgan0 Wie Sie die richtige Verwendung gezeigt haben, möchten Sie die Tabellen wahrscheinlich schließen, sobald sie nicht mehr benötigt werden. Ändern Sie es in
close(mcdt,"nosave");
Ich würde das Warten (...) trotzdem weglassen.
Betreff: JSL im Hintergrund ausführen, ohne dass Fenster auftauchenDavon kann man viel lernen @gzmorgan0 's Lösung. Es bietet einen allgemeinen Rahmen. In diesem speziellen Fall werde ich JMP jedoch interaktiv verwenden, um das zu bekommen, was ich will. Als JMP ist keine explizite Iteration erforderlich fast berechnet für Sie das gewünschte Ergebnis. Nur noch ein zusätzlicher Schritt zum Schluss.
Eigentlich habe ich dafür ein Skript geschrieben, aber die Kommentare sollten den Weg zum gewünschten Ergebnis liefern.
Names Default to Here( 1 );
// open example with several continuous numeric variables
dt = Open( "$SAMPLE_DATA/Fitness.jmp" ) ;
// obtain names of such variables
cols = dt << Get Column Names( Continuous );
// convert the names to references
cols = dt << Get Column Reference( cols );
// use the references to launch platform with list of correlations
mult = dt << Multivariate( Y( Eval( cols ) ), Pairwise Correlations );
// obtain new data table with correlations
dt = Report( mult )["Pairwise Correlations"][TableBox(1)] << Make Into Data Table;
// convert correlations into linear coefficient of determination
dt << New Column( "R Square", Numeric, Continuous,
Values( (dt:Correlation << Get As Matrix)^2 )
);
Betreff: JSL im Hintergrund ausführen, ohne dass Fenster auftauchen@Eines Mannes ,
Sie sollten für Berichtsfenster nach „unsichtbar“ und für Datentabellen nach „unsichtbar“ oder „privat“ suchen.
Names Default To Here( 1 );
flag=random Integer(0,1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
if(flag==1,
obj = dt << Bivariate( Y( :Weight ), X( :Height ), Invisible ),
//else
obj = dt << Bivariate( Y( :Weight ), X( :Height ) )
); //end if