Accesso a Outline Box NIPALS Fit in JSLVoglio accedere in modo dinamico alla parte adatta del report PLS ("NIPALS fit with x factor"). So che posso accedervi se conosco il numero della casella di contorno (ad es. OutlineBox(6)) o il titolo esatto, ma poiché il numero della prima potrebbe cambiare e la seconda cambia a seconda del numero di fattori, hanno problemi ad accedere in modo dinamico alla casella struttura.
C'è un modo per ottenere la posizione dell'albero di una casella di contorno cercando parte del suo nome?
SceneggiaturaRe: Accesso a Outline Box NIPALS Fit in JSLCon il frammento
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' ) ]");Posso accedere alla finestra PLS e inviare messaggi, quindi sembra funzionare.
Re: Accesso a Outline Box NIPALS Fit in JSLSembra che il puntatore "pls" alla piattaforma Partial Least Squares() venga perso quando deve apparire per l'input X e Y.Quindi di seguito è riportato un vero e proprio kluge di una soluzione, che utilizza un riferimento al nome della finestra di output che verrà prodotta per l'esempio, e continua a controllare per vedere quando appare, quindi applica la linea rossa.Non mi piace la soluzione....speriamo che un altro membro della community abbia una soluzione migliore
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" ) ) ) );
);
Re: Accesso a Outline Box NIPALS Fit in JSL@ih : Quando provo con il mio esempio, ottengo il messaggio di errore:

Sto chiamando il PLS usando
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 )
)
);
perché ho bisogno della finestra di dialogo PLS per richiedere X e Y.
Re: Accesso a Outline Box NIPALS Fit in JSLPuoi usare xpath per cercare tutte le caselle di contorno per nome.
pls report << XPath("//OutlineBox[ contains( text(), 'NIPALS Fit with' ) ]");Esempio:
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" ) ) );