Scopri di più nel nostro corso online con
video, esercizi pratici e quiz.
Seleziona e segui le lezioni nell'ordine che preferisci.
Introduzione al linguaggio di scripting JMP

In questa dimostrazione, useremo uno script pre-scritto per vedere come creare un report personalizzato. Quindi nel diario del corso, nella sezione c'è uno script chiamato NOx data per i dati dell'ossido di azoto. E abbiamo sei diverse preparazioni. E poi abbiamo registrato il registro della concentrazione dell'ossido di azoto per ciascuna delle repliche delle sei diverse preparazioni. Quindi lo script è pre-scritto. E nel diario del corso, si chiama Custom NOx Report Script. E lo eseguirò pezzo per pezzo. Ma in realtà voglio eseguire l'intera cosa in modo che possiamo vedere il risultato finale prima di esaminare e guardare cosa fa ogni parte dello script. Quindi eseguirò l'intera cosa. Questo script crea una tabella di riepilogo che viene utilizzata nel Graph Builder. La esamineremo in modo da non utilizzare solo i dati grezzi. Ma il Custom Report è un report a schede. Nella prima scheda, chiamata %CV, abbiamo quella piattaforma Graph Builder live. Quindi questo triangolo rosso è il tipico menu a triangolo rosso che vedrei nel Graph Builder. E poi abbiamo i coefficienti di variazione calcolati o %CV per ogni livello. E qui abbiamo un menu personalizzato con triangolo rosso creato dal nostro script che mi consente di specificare il numero di cifre decimali che desidero per le colonne numeriche nel mio report. E nella seconda scheda, denominata Informazioni di base, ho i dati grezzi per ogni livello, la media e la deviazione standard utilizzate per calcolare il coefficiente di variazione e il valore calcolato. E se ho effettuato una selezione in quel menu con triangolo rosso, cosa che in realtà farò. In %CV, la scheda anteriore, andrò al triangolo rosso e selezionerò due decimali. Lo script esamina tutte le caselle delle colonne numeriche in questo report. Quindi diamo un'occhiata a come è stato costruito. Quindi la prima cosa che fa lo script è inviare il messaggio unidirezionale alla tabella dati originale con il logaritmo dell'ossido di azoto, logaritmo della concentrazione dell'ossido di azoto nel ruolo Y e della preparazione nel ruolo X. E ciò di cui ho bisogno per calcolare il coefficiente di variazione è la tabella del report delle medie e della deviazione standard. Quindi richiedo che venga attivato. Menzionerò che ci sono molti modi in cui potrei ottenere il coefficiente di variazione da JMP senza calcolarlo a mano. Ma stiamo, di nuovo, illustrando alcune delle idee di ottenimento di valori come matrice e utilizzo di tali calcoli di matrice. Quindi eseguirò le righe attraverso Ed ecco l'output unidirezionale con la tabella che ho richiesto. Ora, in riga vediamo quell'altra sintassi per ottenere il livello del report. E un vantaggio nell'utilizzare questa sintassi è che se non ho bisogno di tutto ciò che è in quel report, posso semplicemente richiedere, in questo caso, l'elemento di struttura per la tabella che desidero, ovvero le medie e le deviazioni standard. In modo da poter semplificare un po' il mio codice quando accedo alle caselle di visualizzazione. E lo memorizzerò nella variabile ob. Qui, la nostra convenzione è semplicemente utilizzare l'abbreviazione per casella di struttura. E hai visto che quando ho passato il mouse, stava già memorizzando un valore, perché ho già eseguito l'intero script. Ma lo riassegnerò. Ora, le linee e stanno recuperando la colonna dei livelli, quindi le colonne delle medie e delle deviazioni standard. Per i livelli, non ho bisogno di manipolare affatto i valori in questa colonna. Voglio solo che siano nel mio report personalizzato per la tabella Stime e nelle informazioni di base, la tabella Tutti i risultati. Quindi una cosa carina che posso fare con una casella di visualizzazione di cui ho solo bisogno di una copia è inviare il messaggio "clone box". E questo memorizzerà solo un clone di questa casella di visualizzazione in Livelli, anche dopo aver chiuso la finestra unidirezionale. Quindi indicizziamo la variabile ob con String Col Box Ora qui, di nuovo, potremmo usare le intestazioni di colonna e non farebbe male farlo, certamente. Ma poiché abbiamo solo questa casella di visualizzazione memorizzata in-- o il riferimento ad essa memorizzato in ob, è abbastanza facile usare la sintassi semplice con i valori di indice. Quindi eseguirò la riga E quindi Livelli ora memorizza una casella di visualizzazione e in particolare una casella di colonna stringa che puoi vedere qui nel registro. Line Devo usare le medie e le deviazioni standard nel calcolo. Quindi non posso semplicemente averne una copia. Devo ottenere i valori come matrice e memorizzarli nella variabile mMeans, o matrice delle medie. E puoi vedere nel registro, o se passi il mouse su mMeans quali sono quei valori. E la stessa cosa in line per le deviazioni standard. Quindi lo eseguo, e di nuovo, puoi... Lo renderò un po' più piccolo... puoi vedere nel registro quei valori. Line crea una variabile chiamata mCVs, e questo è solo il calcolo per quel coefficiente di variazione di nuovo. Questa è una misura relativa della variabilità in cui dividiamo le deviazioni standard per le medie e poi la moltiplichiamo per Quindi eseguirò line Quindi ora ho i coefficienti di variazione. E a questo punto, non ho bisogno di nient'altro dalla piattaforma. Quindi invierò il messaggio a ow... questo viene inviato al riferimento all'oggetto del livello di analisi... per chiudere quella finestra. E consiglio sempre, quando il tuo script può chiudere le finestre, che si tratti di analisi o tabelle di dati che non sono più necessarie, di andare avanti e far chiudere quelle finestre al tuo script. Perché se non abbiamo più bisogno che siano aperte, non abbiamo bisogno che occupino memoria. Ora per il passaggio successivo, volevo usare Graph Builder nel mio report personalizzato. E Graph Builder al momento non calcola il coefficiente di variazione come una delle sue statistiche di riepilogo. Quindi la soluzione alternativa è stata quella di creare questa tabella di riepilogo con il coefficiente di variazione, che è incorporato nel comando Tabelle di riepilogo, e quindi usarla come base per Graph Builder. Quindi prima di ottenere la tabella di riepilogo, voglio chiudere quella che è apparsa quando ho eseguito l'intero script. E quando la chiudo, ricevo l'avviso che c'è un'altra finestra aperta, quindi dirò, vai avanti e chiudi tutto. E questo ha immediatamente rimosso Graph Builder dal mio report personalizzato. Quindi a questo punto, non c'è davvero alcun motivo per tenere aperto questo report personalizzato di esempio. Lo ricreeremo mentre continuiamo con lo script. Quindi chiuderò anche quello. Quindi la riga invia "Riepilogo" come messaggio alla tabella dati originale, dove raggruppiamo per preparazione. E la statistica sarà quel coefficiente di variazione. Quindi eseguirò la riga E ora ho tutto ciò di cui ho bisogno per costruire il mio report personalizzato. Quindi utilizziamo Nuova finestra. E memorizzerò la casella di visualizzazione creata da questo nella variabile nw in modo da poter comunicare con essa. Intitolo la mia nuova finestra Report personalizzato e quindi voglio scrivere quelle schede. Quindi specifichiamo Casella di scheda. E quindi il numero di schede è determinato semplicemente da quanti argomenti della casella di pagina di scheda fornisci a quella. Quindi avremo in questo caso. Il primo argomento di Casella di pagina di scheda è il titolo. E quindi il primo si chiama %CV. E quindi, H Casella di elenco mi fornisce una casella di elenco orizzontale che conterrà il Generatore di grafici. E quindi in realtà lo sto avviando in diretta. Ecco come ottengo questa piattaforma live in questa finestra, facendo in modo che tale avvio si verifichi semplicemente nella casella di visualizzazione. Questa è la sintassi che potrei aver preso dalla creazione interattiva del Graph Builder e dall'invio alla tabella Summarize. E poi, l'altra cosa che sto allineando nella H List Box è la casella di riepilogo, chiamata Estimates, che avrà la casella della tabella contenente la casella della colonna stringa memorizzata in Levels. E il mio script crea una casella della colonna numerica con i valori %CV. La seconda casella della pagina della scheda è l'informazione di base, usando una casella di riepilogo per etichettarla come All Results. E all'interno della casella di riepilogo, una casella della tabella allinea quattro caselle della colonna numerica orizzontalmente. Quindi la renderò più alta solo per essere sicuro di prendere le linee che voglio, che sono attraverso E eseguirò quella parte. Quindi non è completa. Questo è il punto di partenza per il mio report personalizzato. E penso di poter rendere la finestra dello script un po' più stretta ora in modo che possiamo vedere entrambi affiancati. Quindi Graph Builder non ha, per impostazione predefinita, una linea in quindi questa è una delle cose che voglio aggiungere. Voglio ridimensionarla, perché non ho bisogno che il grafico sia così grande. E voglio aggiungere quel menu a triangolo rosso alla voce di struttura Stime. Nota, nello script, quando ho creato la casella di struttura delle stime nella prima scheda del report personalizzato, ho memorizzato quel risultato in ob. E quello era un nome di variabile che avevo usato in precedenza quando stavo ottenendo le medie e le deviazioni standard dalla piattaforma unidirezionale. Quindi, anche qui, ho semplicemente usato l'abbreviazione e ho sovrascritto quel valore perché non avevo bisogno del valore precedente. Quindi, se ora scorro verso il basso per vedere il resto dello script, sto inviando un messaggio "Imposta script menu" alla casella di visualizzazione memorizzata in ob, che è quella casella di struttura Stime. E Imposta script menu accetta come argomento un elenco di voci di menu che si alternano con l'espressione che viene eseguita quando viene selezionata quella voce di menu. Quindi l'espressione esegue semplicemente un ciclo attraverso le caselle di colonna numerica nel report e imposta il formato. Abbiamo una larghezza di campo del numero massimo di caratteri che possono essere visualizzati, e quindi il numero di cifre decimali. Quindi, a seconda di quali di quelle opzioni di menu a triangolo rosso selezioniamo, ciò determina quale di queste espressioni verrà eseguita. Quindi, eseguirò le linee attraverso E nel report personalizzato, ora vedi che abbiamo il menu del triangolo rosso. La linea cambierà la dimensione della casella del frame dal Graph Builder. E questa è una cosa che, se andassi a-- Farò clic con il pulsante destro del mouse sul pulsante Divulgazione e in Modifica, selezionerò Mostra struttura ad albero-- Potrei scorrere verso il basso. Quando guardi un intero report, ci sono molti costruttori qui che non usiamo quando scriviamo i nostri script. Ma scorro verso il basso. OK, c'è PictureBox, scorri ancora un po', c'è quel titolo, scorri ancora un po'. Puoi passare il mouse per vedere le caselle degli assi. E infine, vedo FrameBox, e quindi posso vedere che è la cosa che voglio ridimensionare. Man mano che acquisisci familiarità con le piattaforme, potresti non aver bisogno di guardare la struttura ad albero. Quindi la riga in cui sottoscrivo la nuova finestra e invio il messaggio "Dimensione frame", che è in pixel, e andrò avanti ed eseguirò la riga Quindi ho ridimensionato quella casella frame di Graph Builder. Ora di nuovo, puoi usare l'indice di scripting per vedere quali tipi di messaggi possono ricevere diverse caselle di visualizzazione. Quindi se vado al menu Aiuto e seleziono Indice di scripting, potrei cambiare da Tutte le categorie a Caselle di visualizzazione e scorrere verso il basso per trovare FrameBox e vedere i messaggi che possono essere inviati a quella. Chiuderò l'indice di scripting. L'altra cosa che volevamo fare è, su AxisBox, aggiungere una linea di riferimento. E di nuovo, userei-- se non avessi familiarità con-- se non avessi familiarità con la struttura ad albero di visualizzazione per Graph Builder, guarderei quella finestra Struttura ad albero. in alcune piattaforme è l'asse verticale. In alcune piattaforme, è l'asse orizzontale. In questo caso, è l'asse orizzontale. Invio il messaggio per aggiungere la linea di riferimento. E gli argomenti qui sono a quale valore vuoi che sia la linea di riferimento? La voglio a Che stile di linea? Voglio un solido. Il colore? Otterrò il nero. Il quarto argomento è un'etichetta sull'asse. E quindi avendo solo una stringa di caratteri vuota, stiamo dicendo che non vogliamo un'etichetta. Infatti, potrei eliminarla finché ho questa virgola per dire a JMP che questo è il quinto argomento, e non il quarto argomento. Se non avessi questa virgola, allora JMP etichetterebbe l'asse con un Ma poiché ho messo la virgola lì, JMP capisce che questa è la larghezza della linea, non l'etichetta. Quindi eseguirò line E questo disegna la mia linea di riferimento. E poi, l'ultimo pezzo di questo script è inviare "Salva diario" alla casella di visualizzazione memorizzata in nw e chiamarla Custom CV Report.jrn. Ora, il tuo script potrebbe finire qui producendo questo report con la finestra live Graph Builder e il menu del triangolo rosso con cui l'utente può interagire. E infatti, andrò avanti e selezionerò una cifra decimale questa volta. In alcuni casi, potresti anche voler salvare quel report come diario. E perderai quel menu a triangolo rosso quando lo farai. E il tuo Graph Builder non sarà più un report live. Ma l'ultima opzione qui mostra come puoi salvare un report personalizzato come diario con il messaggio "Salva diario". Quindi in questo script, abbiamo avviato il livello di analisi. Abbiamo recuperato l'oggetto del livello di report e quindi ottenuto gli elementi di quel livello di report di cui avevamo bisogno come copie o come matrici per le manipolazioni. Abbiamo creato una tabella dati separata per la piattaforma che volevamo usare e quindi creato il report personalizzato usando Nuova finestra, in questo caso con schede, caselle di riepilogo orizzontali e caselle di contorno come caselle di visualizzazione, oltre alla casella della colonna stringa memorizzata in Livelli e alle varie caselle della colonna numerica. E poi, abbiamo visto come inviare messaggi ai componenti di quel report personalizzato.