Domanda su come ottenere dati da un output di stampa usando oggetti nella struttura ad albero<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao, voglio ottenere i dati di fallout per vari scenari di limiti di specifiche. L'ho fatto in precedenza in un altro script che scorreva tra le colonne, ottenendo ogni colonna come un elenco, select_where () i dati sono sopra / sotto i limiti delle specifiche, ma volevo che questa volta usassi le informazioni JMP native.
La piattaforma di distribuzione di JMP mostrerà l'analisi cpk e le ricadute in caso di limiti. Quando esamino la struttura ad albero, le informazioni di fallout appaiono in un oggetto / elenco chiamato "numbercolbox (4)". Ho capito come catturare i dati fallout, e posso popolare i limiti delle specifiche e rieseguire la distribuzione per ciascuno dei miei limiti, ma mi piacerebbe sapere quanto sia affidabile questa soluzione. Ad esempio, se qualcun altro ha un diverso insieme di preferenze, numbercolbox (4) sta andando sempre a tirare i dati fallout?
Suppongo che un altro sia xpaths, ma non ho molte informazioni su questo. Se questa è una soluzione decente e qualcuno ha la documentazione su di esso, per favore fatemelo sapere.
In allegato c'è una sceneggiatura che fa ciò che voglio e che lavora per me. Puoi eseguirlo e vedere di cosa sto parlando. Usa dati di esempio.
Per vedere la struttura ad albero su un'uscita JMP (trama, ecc.), Rendere la finestra più grande di quanto non sia nativamente, quindi fare clic con il tasto Ctrl-Maiusc e fare clic con il pulsante destro del mouse nell'area più in basso o molto a destra e selezionare Mostra struttura ad albero. Vedi sotto.
Grazie,
-Mike

Ri: Domanda su come ottenere dati da un output di stampa usando oggetti nella struttura ad alberoHo cambiato il codice xpath per renderlo più semplice (almeno per me), e questo funziona per quello che ho bisogno di fare. Tuttavia, sono ancora curioso del perché il codice che ho postato sopra non funzioni, in quanto la struttura / codice di utilizzo più generale che hai sarebbe davvero utile.
Grazie,
Mike
i nomi sono predefiniti qui ( 1 ) ;
testVar = 0 ;
testVar = 1 ; // commenta per le esecuzioni successive
Se ( testVar ,
Aperto ( "$ SAMPLE_DATA \ Semiconductor Capability.jmp" ) ;
myDist = Distribuzione (
Pila ( 1 ) ,
Distribuzione continua (
Colonna ( : NPN1 ) ,
Personalizza statistiche riassuntive (
Media robusta ( 1 ) ,
Robusto Std Dev ( 1 )
)
) ,
Distribuzione continua (
Colonna ( : PNP1 ) ,
Personalizza statistiche riassuntive (
Media robusta ( 1 ) ,
Robusto Std Dev ( 1 )
)
) ,
Distribuzione continua (
Colonna ( : PNP2 ) ,
Personalizza statistiche riassuntive (
Media robusta ( 1 ) ,
Robusto Std Dev ( 1 )
)
)
) ;
) ;
reportObj = myDist << xpath ( "// OutlineBox [text () = 'Statistiche riassuntive']" " ) ;
per ( io = 1 , io <= nitems ( reportObj ) , io ++, mostrare ( reportObj [ io ] << ottenere il titolo ) ; ) ;
strList = {} ;
reportObj = myDist << xpath ( "// OutlineBox [text () = 'Statistiche riassuntive'] // StringColBox" ) ;
// for (i = 1, i <= nitems (reportObj), i ++, show (reportObj << ottenere); strList = reportObj << get;);
mostrare ( reportObj [ 1 ] << ottenere ) ;
strList = reportObj [ 1 ] << ottenere ;
provare ( rMnIndx = loc ( strList , "Robusto significa" ) , rMnIndx = - 1 ) ;
provare ( rStdIndx = loc ( strList , "Deviazione standard robusta" ) , rStdIndx = - 1 ) ;
statList = {} ;
reportObj = myDist << xpath ( "// OutlineBox [text () = 'Statistiche riassuntive'] // NumberColBox" ) ;
// for (i = 1, i <= nitems (reportObj), i ++, show (reportObj << ottenere); statList = reportObj << get;);
mostrare ( reportObj [ 1 ] << ottenere ) ;
statList = reportObj [ 1 ] << ottenere ;
Se ( rMnIndx > 0 & rStdIndx > 0 ,
robustMean = statList [ rMnIndx ] ;
robustStd = statList [ rStdIndx ] ;
,
robustMean = - 999 ;
robustStd = - 999 ;
) ;
mostrare ( robustMean , robustStd ) ;
Ri: Domanda su come ottenere dati da un output di stampa usando oggetti nella struttura ad alberoCiao Philip,
Finalmente sono riuscito a controllare il codice xpath, e ho dei problemi con questo. Ho usato il tuo poster come riferimento. Puoi aiutarmi a capire cosa sto facendo male?
Inoltre, penso di averlo visto prima, ma non ricordo ... qual 'é ' . ' nel " list_testSS.Key "nome variabile per?
Sembra reminiscenza di una struttura in C ma non ho trovato la documentazione di jsl su di essa. Non ero sicuro se fosse impostato correttamente nel mio codice.
Grazie,
Mike
i nomi sono predefiniti qui ( 1 ) ;
Aperto ( "$ SAMPLE_DATA \ Semiconductor Capability.jmp" ) ;
myDist =
Distribuzione (
Pila ( 1 ) ,
Distribuzione continua (
Colonna ( : NPN1 ) ,
Layout orizzontale ( 1 ) ,
Verticale ( 0 ) ,
Asce a sinistra ( 1 ) ,
Personalizza statistiche riassuntive (
Std Err Mean ( 0 ) ,
Intervallo di confidenza media superiore ( 0 ) ,
Intervallo di confidenza media inferiore ( 0 ) ,
N mancante ( 1 ) ,
Gamma ( 1 ) ,
Media robusta ( 1 ) ,
Robusto Std Dev ( 1 )
)
)
) ;
reportObj = myDist << xpath ( "// OutlineBox [text () = 'Summary Statistics'] / ancestor :: OutlineBox [last ()]" ) ;
list_groupName = reportObj << GetTitle ;
list_testSS.Key = ( reportObj << xpath ( "// * [contiene (text (), 'Statistiche riassuntive')] / following-sibling :: * // StringColBox" )) << Ottenere ;
list_testSS.Val = ( reportObj << xpath ( "// * [contiene (text (), 'Statistiche riassuntive')] / follow-sibling :: * // NumberColBox" )) << Ottenere ;
list_levelString = ( reportObj << xpath ( "// OutlineBox [text () = 'Sigma a lungo termine'] // StringColBoxHeader [text () = 'Capability'] / .." )) << ottenere ;
list_levelMeans = ( reportObj << xpath ( "// OutlineBox [text () = 'Sigma a lungo termine'] // NumberColBoxHeader [text () = 'Index'] / .." )) << ottenere ;
Ri: Domanda su come ottenere dati da un output di stampa usando oggetti nella struttura ad alberoUn chiaro vantaggio di xpath è quando ci sono più oggetti displaybox in una finestra Report JMP. Ad esempio, supponi di aver fatto qualche analisi e finito
con 100 Outlineboxes, con xpath puoi fare:
rpt << xpath ("// OutlineBox")
e viene restituito un elenco di riferimenti a TUTTI i riquadri di contorno. (dove rpt fa riferimento al Finestra Report JMP)
Con lo scripting di displaybox tradizionale dovresti prima sapere quanti ne sono stati generati, quindi passare da 1 a N e accedere a ogni outlinebox tramite il suo indice. L'indicizzazione può essere un problema soprattutto se la sequenza non è chiara (outlineboxes nidificati per esempio). Questo può essere molti più passaggi di codifica.
Per quanto riguarda la velocità, c'era una differenza evidente per me con XPath che eseguiva molto più velocemente, specialmente con gruppi di grandi dimensioni. Non penso che faccia la differenza con lo scenario "single shot" che descrivi, tuttavia dovrebbe essere fatto uno studio di tempistica formale.
Ri: Domanda su come ottenere dati da un output di stampa usando oggetti nella struttura ad alberoGrazie, ho cercato documentazione per un po '. Ci giocherò un po 'e vedrò come va. Sembra semplice ma anche dipendente dalla lingua, che probabilmente è ok per quello di cui ho bisogno.
Perché xpath è più efficiente dello scripting di tree display? È solo una codifica più efficiente è ottenere informazioni indietro più veloce? Ai fini di questa domanda, supponiamo che sia un solo oggetto che viene restituito, come una finestra di distribuzione e che tu ne conosca il nome o il numero. Se lo fai 100 o 1000 volte, uno è notevolmente più veloce dell'altro? Sembra che la generazione del report stesso (prima di estrarre l'oggetto) sia dove si trova il tempo di esecuzione.
Ri: Domanda su come ottenere dati da un output di stampa usando oggetti nella struttura ad alberoC'era un poster piuttosto buono su XPath quest'anno alla conferenza.
https://community.jmp.com/docs/DOC-8116
Passano attraverso alcuni esempi di vita reale con la struttura JMP.
Ri: Domanda su come ottenere dati da un output di stampa usando oggetti nella struttura ad alberoGrazie! È ovvio per me ora.
Vedrò se qualche utente sta usando altre lingue e ci metto dei ganci per qualsiasi altra lingua usata. Non sarà a prova di proiettile, ma dovrebbe essere ok per i nostri scopi. Grazie.
Ri: Domanda su come ottenere dati da un output di stampa usando oggetti nella struttura ad alberoDirei l'ovvio forse, ma per favore sii consapevole che se lo script deve essere eseguito in più locale, devi fare attenzione quando indichi le finestre di visualizzazione con il loro nome.
Ri: Domanda su come ottenere dati da un output di stampa usando oggetti nella struttura ad alberoGrazie, il fatto che quel numero (nel mio caso 4) possa cambiare è un po 'come mi aspettavo. La tua soluzione funziona perfettamente.
Sto anche avendo problemi nell'impostare i limiti delle specifiche superiori e inferiori con le variabili (liste). Quando uso un elenco con codice fisso come ho fatto nell'esempio, funziona bene, ma non posso semplicemente usare un semplice elenco di elementi. Probabilmente non sto usando l'eval (sostituto ()) correttamente, ma nella mia esperienza questa è una delle parti più confuse del JSL.
Qualche suggerimento su come risolvere questo problema?
.
| | | mySpecsExpr = expr (come colonna (yParamNames ) << set property ("Spec Limits", {aaa, bbb})); |
| | | spettacolo (eval (dlist [1]) , eval (dList [2]) ); // <- questi valutano bene nella finestra di registro |
| | | eval (sostituto (mySpecsExpr, expr (aaa), eval (dList [1]) , expr (bbb), eval (dList [2]) )); |
Edit: In realtà sono stato in grado di capire in base a questo come: 46953 - Come scrivere proprietà colonna usando variabili
Questo funziona. Ma se qualcuno ha una risposta più semplice, lo apprezzerei.
| | | | Eval ( |
| | | | | Eval Expr ( |
| | | | | | come colonna (yParamNames ) << Imposta proprietà ( |
| | | | | | | "Limiti delle specifiche", |
| | | | | | | {LSL (Expr (eval (dList [1]) )), USL (Expr (eval (dList [2]) ))} //, Target (Expr (tLimit)), Mostra limiti (0)} |
| | | | | | ) |
| | | | | ) |
| | | | ); |
Ri: Domanda su come ottenere dati da un output di stampa usando oggetti nella struttura ad alberoNon so quanto sarebbe robusta la numerazione per questa particolare piattaforma o nodo. Ma in generale, la numerazione non è fissa, ma può cambiare con la complessità complessiva del rapporto.
Un metodo alternativo per indicare una particolare casella di visualizzazione è usare il suo nome. Sono supportate anche le wild card. Penso che i nomi siano più robusti della numerazione, perché raramente cambiano tra le versioni di JMP mentre il layout e predefinito il numero di opzioni può variare in base alla versione e alle preferenze.
io n il contesto del tuo script di esempio, tutto tre righe sotto riporterebbero tutti lo stesso risultato:
rapporto ( distObj ) [ Numero Col Box ( 4 )] << ottenere ;
rapporto ( distObj ) [ Numero Col Box ( "% Effettivo" )] << ottenere ;
rapporto ( distObj ) [ Numero Col Box ( "%?" )] << ottenere ;