Zugriff auf Outline Box NIPALS Fit in JSLIch möchte dynamisch auf den Fit-Teil des PLS-Berichts zugreifen ("NIPALS-Fit mit x-Faktoren"). Ich weiß, dass ich darauf zugreifen kann, wenn ich die Nummer der Gliederungsbox (z. B. OutlineBox(6)) oder den genauen Titel kenne, aber da sich die Nummer der ersteren ändern könnte und die der letzteren sich je nach Anzahl der Faktoren ändert, habe ich haben Probleme beim dynamischen Zugriff auf das Gliederungsfeld.
Gibt es eine Möglichkeit, die Baumposition einer Gliederungsbox zu ermitteln, indem nach einem Teil ihres Namens gesucht wird?
SkripterstellungBetreff: Zugriff auf Outline Box NIPALS Fit in JSLMit dem Ausschnitt
mywind=Window() << Get Window Title;
pls_wind = {};
For( i = 1, i <= N Items( mywind ), i++,
If( Contains( mywind[i], "Partial Least Squares"),
Insert Into( pls_wind, mywind[i] )
)
);
ob = Window( pls_wind[1] ) << XPath("//OutlineBox[ contains( text(), 'NIPALS Fit with' ) ]");Ich kann auf das PLS-Fenster zugreifen und Nachrichten senden, das scheint also zu funktionieren.
Betreff: Zugriff auf Outline Box NIPALS Fit in JSLEs scheint, als ob der "pls"-Zeiger auf die Partial Least Squares()-Plattform verloren geht, wenn er für die X- und Y-Eingabe erscheinen muss.Unten ist also eine wirklich kluge Lösung, die einen Verweis auf den Namen des Ausgabefensters verwendet, das für das Beispiel erzeugt wird, und immer wieder überprüft, wann es erscheint, und dann die rote Linie anwendet.Die Lösung gefällt mir nicht....Hoffentlich hat ein anderes Community-Mitglied eine bessere Lösung
Names Default To Here( 1 );
dt = Open( "$Sample_data/iris.jmp" );
pls = Partial Least Squares(
Validation Method( KFold( 7 ), Initial Number of Factors( 3 ) ),
Fit( Method( NIPALS ), Number of Factors( 3 ) ),
Fit( Method( NIPALS ), Number of Factors( 2 ) )
);
ob = "";
counter = 0;
While( ob == "",
Wait( 5 );
ob = Try( Window( "iris - Partial Least Squares of Petal width" ) << XPath( "//OutlineBox[ contains( text(), 'NIPALS Fit with' ) ]" ), "" );
Try( ob[1] << Prepend( Spacer Box( size( 800, 5 ), color( "red" ) ) ) );
);
Betreff: Zugriff auf Outline Box NIPALS Fit in JSL@ich h : Wenn ich es mit meinem Beispiel probiere, bekomme ich die Fehlermeldung:

Ich rufe die PLS mit an
pls = Partial Least Squares(
Validation( :Validation ),
Initial Number of Factors( 15 ),
Centering( 0 ),
Scaling( 0 ),
Fit(
Method( NIPALS ),
Distance Plots( 1 ),
Diagnostics Plots( 1 ),
Overlay Loadings Plots( 1 ),
VIP vs Coefficients Plots( 1 ),
T Square Plot( 1 ),
Correlation Loading Plot( 2 ),
Overlay Coefficients Plots( 1 )
)
);
weil ich den PLS-Dialog brauche, um nach X und Y zu fragen.
Betreff: Zugriff auf Outline Box NIPALS Fit in JSLSie könnten xpath verwenden, um alle Gliederungsboxen nach Namen zu durchsuchen.
pls report << XPath("//OutlineBox[ contains( text(), 'NIPALS Fit with' ) ]");Beispiel:
names default to here(1);
dt = Open( "$Sample_data/iris.jmp" );
pls = Partial Least Squares(
Y( :Petal width ),
X( :Sepal length, :Sepal width, :Petal length ),
Validation Method( KFold( 7 ), Initial Number of Factors( 3 ) ),
Fit( Method( NIPALS ), Number of Factors( 3 ) ),
Fit( Method( NIPALS ), Number of Factors( 2 ) )
);
//get all matching outline boxes:
ob = pls << XPath("//OutlineBox[ contains( text(), 'NIPALS Fit with' ) ]");
//Reference the first match:
ob[1] << Prepend ( Spacer Box( size( 800, 5 ), color( "red" ) ) );