Tutti,
Nonostante molti esempi nel forum non riesco a far funzionare la funzione "Ottieni come matrice". Grazie alla funzione albero ho trovato la tabella di dati corretta da cui devono essere estratti i dati ("Schätzer" = "stima"), vedi l'immagine qui sotto. Ho bisogno dei dati nelle quattro righe di NumberColBOX(8). "Get As Matrix" semplicemente non estrae nulla!
Ecco la mia sceneggiatura:
"Carica file dati"
....
drg = Adatta curva( Y( :Pmpp ), X( :time_ZUV ), Adatta biesponenziale 4P );
dgr_report = drg << Rapporto;
dgr_report << mostra struttura ad albero;
modello = dgr_report[OutlineBox(2)][TableBox(1)][StringColBox(1)] << Get();
cor_val = dgr_report[OutlineBox(2)][TableBox(1)][NumberColBox(6)] << Get();
SumFit = drg_report[OutlineBox(7)][TableBox(3)][NumberColBox(8)] << ge tAs Matrix;
....
"Mostra modello, cor_val, SumFit"
Nota che i parametri denominati "modell" e "cor_val" sono estratti correttamente da OutlineBox (2)!
Tree structure of the expo decay fitStruttura ad albero dell'Expo Decay Fit
L'aiuto sarebbe molto apprezzato!
Mickael
Di seguito sono riportati i commenti dello script 6_XPathFind.jsl scritto per JSL Companion, Applicazioni del linguaggio di scripting JMP, 2a ed .
Questo potrebbe essere un punto di partenza per saperne di più.Cerca anche in questo blog di JMP diverse discussioni e presentazioni relative a XPath.
/* XML -> eXstensible Markup Language
Diversi collegamenti per saperne di più su XPATH
https://en.wikipedia.org/wiki/XPath
https://www.w3.org/TR/xpath.html
https://www.w3.org/TR/xpath/
//Sezione 6 - Più sintassi XPAth
/* note ed esempi basati su https://www.tutorialspoint.com/xpath/xpath_quick_guide.htm
nome-nodo Seleziona tutti i nodi con il nome dato "nodename" i nomi dei nodi in JMP sono nomi di classe DisplayBox:
OutlineBox, TableBox, StringColBox, NumberColBox, TabBox, TabPageBox, AxisBox, FrameBox ecc.
/ La selezione inizia dal nodo radice
// La selezione inizia dal nodo corrente che corrisponde alla selezione
. Seleziona il nodo corrente
.. Seleziona il genitore del nodo corrente
@ Seleziona gli attributi
Esempio di TableBox - Seleziona tutti i nodi (visualizzazione) con il nome (nome della classe) "TableBox"
Esempio AxisBox/TextBox - Seleziona tutti gli elementi textBox che sono figli di un AxisBox
//nome-nodo Esempio - //TableBox seleziona tutti i display TableBox indipendentemente da dove si trovino nel report JMP
----caratteri jolly----
* utilizzato per corrispondere a qualsiasi nodo.
.utilizzato per abbinare il nodo corrente nel contesto.
@*utilizzato per corrispondere a qualsiasi attributo
----predicati---- Espressione tra parentesi quadre per filtrare/limitare la selezione
Esempi [n] [Last()] [@NumberColBoxItem > 20]
----funzioni di stringa più utili----
inizia con(stringa1, stringa2) Restituisce vero quando la prima stringa inizia con la seconda stringa.
contiene(stringa1, stringa2) Restituisce vero quando la prima stringa contiene la seconda stringa.
substring(string, offset, length?) Restituisce una sezione della stringa. La sezione inizia in corrispondenza dell'offset fino alla lunghezza fornita.
substring-before(string1, string2) Restituisce la parte di string1 prima della prima occorrenza di string2.
substring-after(stringa1, stringa2) Restituisce la parte di stringa1 dopo la prima occorrenza di stringa2.
position() Fornisce la posizione del nodo.
last() Seleziona l'ultimo nodo relativo al nodo corrente;
count è disponibile anche , tuttavia, JMP restituisce un elenco di risultati e JMP nitems(result) è altrettanto semplice
//nodename Trovare tutte le caselle con quel nome è probabilmente il più utile
Per l'F curva() piattaforma c'è un'opzione per Crea tabella dei parametri , che potresti trovare utile. iI è un'opzione Fit[n] (messaggio).
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/Bioassay.jmp" );
obj = Fit Curve( Y( :Toxicity ), X( :log Conc ), Group( :formulation ) );
obj << Fit Logistic 4P;
ptbl = obj << (Fit[1] << Make Parameter Table);
È possibile indirizzare una casella di visualizzazione con il suo numero "assoluto" ma se in un contesto gerarchico dovrebbero essere utilizzati i loro numeri relativi. Nel tuo esempio c'è solo un TableBox e tre NumberColBox in OutLineBox(7) e JMP non riuscirà quindi a trovare un terzo TableBox.
Di seguito sono riportati quattro metodi diversi ma equivalenti per estrarre la matrice. Il primo usa la numerazione assoluta, il secondo e il terzo usano la numerazione relativa e l'ultimo usa percorso per identificare il NumberColBox in base al suo titolo
SumFit = drg_report[Number Col Box(8)] << Get As Matrix;
SumFit = drg_report[Outline Box(7)][1][2] << Get As Matrix;
SumFit = drg_report[Outline Box(7)][Table Box(1)][Number Col Box(1)] << Get As Matrix;
SumFit = (drg_report << xpath("//NumberColBox[NumberColBoxHeader ='Estimate']"))[1] << Get As Matrix;