Iterare sugli elementi del reportCiao, sono nuovo ad usare JMP ma lo trovo molto utile e pratico, finora mi sto divertendo molto. Sto imparando JSL perché ho bisogno di automatizzare alcune analisi per i miei compagni di squadra e per motivi di efficienza. Sto iniziando con qualcosa di semplice ma ho bisogno di aiuto per andare avanti.
Ho bisogno di personalizzare i risultati della piattaforma di distribuzione per eseguire un test di normalità per più colonne di una tabella, in modo da ripeterlo tutte le volte che io o i miei colleghi ne avremo bisogno. Sono riuscito a scrivere un semplice script che raggiunge questo obiettivo in modo semplice. Tuttavia, riscontro problemi su come modificare particolari elementi del report quando viene soddisfatta una condizione.
Ecco lo script che restituisce i valori dal test Shapiro-Wilk:
// Select variables to analyze
Names Default to Here( 1 );
dt = Current Data Table();
dialog = New Window( "Select Columns", << Modal,
Panel Box( "Column Selection",
Lineup Box( N Col( 1 ),
Text Box( "Select columns for distribution" ),
y col list = Col List Box( All )
)
),
H List Box(
Button Box( "OK",
y col = y col list << Get Selected;
),
Button Box( "Cancel" )
)
);
If( dialog["Button"] == -1,
Throw( "User cancelled" )
);
// Create distribution
dist = dt << Distribution(Columns(evalList(y col)),Histograms Only);
// Add parameters
dist << Normal Quantile Plot( 1 );
dist << Fit Distribution(Normal(Goodness of Fit(1)));
Come posso fare in modo che JMP mostri automaticamente statistiche di riepilogo personalizzate (incluse asimmetria e curtosi) quando il valore P (Prob
Quando provo a modificare qualcosa nel report, ad esempio, rimuovo le stime dei parametri
distr["Parameter Estimates"] << Delete;
Lo fa solo per il primo elemento del report.
Apprezzerei qualsiasi aiuto su come manipolare gli elementi del rapporto, in generale come rimuovere tutte le stime dei parametri, e in particolare come P <0,05.
Grazie!
Personalizzazione di massaRi: Iterazione sugli elementi del reportGrazie!!!Ri: Iterazione sugli elementi del reportLa casella di riepilogo H() è solo un contenitore nella finestra del report.Le finestre dei report JMP possono essere pensate come una raccolta di contenitori di visualizzazione nidificati e di elementi di visualizzazione in tali contenitori.Se vuoi vedere la struttura ad albero di visualizzazione con i contenitori di visualizzazione, fai clic con il pulsante destro del mouse sul triangolo grigio accanto a una casella di struttura e seleziona Modifica > Mostra struttura ad albero.

In questo caso, non penso che tu possa farlo nel modo inverso, come descrivi, poiché uno dei risultati dell'esecuzione di un comando di script della piattaforma di analisi è che crea la finestra di visualizzazione e il messaggio <
Se non posti dist nell'albero di visualizzazione come ho fatto nello script, verrà semplicemente creata una nuova finestra con quella singola analisi di distribuzione al suo interno e ci sarà una finestra separata con ciascuna analisi di distribuzione (per ogni colonna selezionata).
Ri: Iterazione sugli elementi del reportGrazie mille, svolge la sua funzione e mi insegna anche molto. È un grande aiuto.
Vorrei chiederti una cosa per aiutarmi a capire, spero che non sia un grosso problema per te: ho notato che il primo passo che hai fatto nel ciclo for è stato quello di accodare la distribuzione alla variabile hb e poi aggiungi tutti i dettagli (qq-plot, test SW, ecc.). Secondo la mia logica e la mia esperienza di programmazione, di solito aggiungevo prima i dettagli e poi aggiungevo tutto al posto giusto (è esattamente dove avevo effettivamente il problema). La mia domanda è: come funziona l'hb creato dalla funzione Nuova Finestra? È una specie di pagina bianca in cui aggiungerà tutti i comandi successivi e regolerà di conseguenza la dimensione della nuova finestra? Aggiungerà tutto ciò che ha a che fare con la variabile dist? E in che modo la nuova variabile creata con distr = Report( dist ) influenza ciò che viene aggiunto?
Riguardo al tuo commento sulla bontà del fit test, grazie mille, questo è in realtà il motivo per cui sto creando la sceneggiatura. Ho appena iniziato un nuovo lavoro un mese fa e finora i miei compagni di squadra hanno utilizzato SOLO il valore p del test di Shapiro-Wilk per accettare o rifiutare la distribuzione normale. Sto cercando di fornire loro più strumenti per capire o valutare se i dati seguono una distribuzione normale oppure no, e perché.
Ri: Iterazione sugli elementi del reportQuando si utilizza Distribution() con un elenco di colonne, la finestra del report contiene l'output di molte analisi di distribuzione "indipendenti".Ognuna di queste analisi è un oggetto separato.L'interazione con tali oggetti può essere diversa dall'interazione con il livello del report nella finestra del report. Quando lo fai
dist << Normal Quantile Plot(1);
quel messaggio viene trasmesso a tutti gli oggetti di distribuzione visualizzati nella finestra del report.Ma quando lo fai
distr=Report(dist);
distr["Parameter Estimates"] << Delete;
ciò che fa JMP è andare alla prima istanza dell'oggetto del livello del report a cui è possibile fare riferimento utilizzando la stringa "Parameter Estimates", che in questo caso è la casella di contorno sotto i risultati della normale adattata.Per fare ciò che desideri, dovresti scorrere ogni parte del report, ottenere il risultato del test Shapiro-Wilk dal livello del report e quindi decidere di eliminare parti del report di output.
Penso che nel tuo caso sarebbe più semplice ripetere l'analisi della distribuzione per ciascuna colonna una alla volta, aggiungendo i risultati a una nuova finestra del report.Ecco un esempio di codice che mostra come farlo
// Select variables to analyze
Names Default To Here( 1 );
dt = Current Data Table();
dialog = New Window( "Select Columns",
<<MODAL></MODAL>