Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Rendi tuo amico il pulsante di risposta (il triangolo rosso). Bentornati alla mia serie sulle basi dello scripting JMP . Questa è la terza voce una serie che è strutturato affinché tu possa lavorare insieme. Se ti sei appena unito a noi, probabilmente vorrai dare un'occhiata alle voci precedenti della serie. Ecco alcuni link a quelli:
Dare un'occhiata; ti aiuterà con quello che sta succedendo.
Va bene, allacciati la cintura. Finora non abbiamo effettivamente lavorato con alcun codice (a meno che non si conti il JSL Scripting Index). Finisce oggi. Oggi utilizzeremo la finestra di script JSL. So che può creare ansia ad alcuni di voi. Facciamo qualche respiro profondo e arriviamo al punto.
Non scrivere script per il gusto di scrivere!
Siamo onesti su una cosa: la codifica non è un processo efficiente a breve termine. Per analisi e grafica una tantum, gli strumenti di trascinamento della selezione quasi sempre batteranno la codifica in termini di ROI (il costo di qualcuno che esegue un esercizio di sviluppo è semplicemente troppo alto). C'è chi insiste sullo scripting indipendentemente dal fatto che una soluzione GUI sia più veloce. Non so perché e non sono nel loro numero. Prenderò in considerazione la codifica quando un flusso di lavoro è difficile o abbastanza tortuoso da far sì che l'utilizzo di una GUI introduca una significativa possibilità di errori lungo il percorso. Prenderò in considerazione anche la codifica quando avrò intenzione di fare qualcosa ancora e ancora e posso giustificare il tempo attraverso l'efficienza che guadagno dall'automazione. Questo non vuol dire che non scrivo codice solo per vedere se posso fare qualcosa. O che non scelgo un modo più contorto di programmare solo per imparare qualcosa di nuovo. Ma questi casi rappresentano l’eccezione piuttosto che la regola.
Ora, probabilmente ho fatto storcere il naso ad alcune persone con questa generalizzazione. Il problema con questo tipo di affermazione generale è che è piuttosto in bianco e nero. La verità, proprio come ogni cosa nella vita, è che esiste un'area grigia in cui la proposta di valore è un dilemma tra una soluzione punta e clicca e la codifica. L'area grigia è anche quella in cui si trova la maggior parte degli aspiranti programmatori. Sanno che probabilmente potranno ottenere una certa efficienza attraverso lo scripting, ma semplicemente non sanno da dove cominciare o sono preoccupati che il tempo perso nello sforzo di apprendimento iniziale sarà troppo grande. La cosa bella del design di JMP è che ci fornisce strumenti che possiamo utilizzare per iniziare a introdurre JSL in un flusso di lavoro senza perdere troppa efficienza durante la manipolazione di JSL. E, come tutte le cose in JMP, inizia con Il flusso di lavoro JMP .
Il flusso di lavoro JMP (edizione con script)
Il flusso di lavoro JMP generalmente termina con l'accesso dell'utente al menu a forma di triangolo rosso per rispondere a una domanda. Un'altra funzione del menu del triangolo rosso è fornire agli utenti metodi per salvare il proprio lavoro (salva script).

Esistono tre modi principali per salvare gli script:
- Alla tabella dati : questo metodo salva gli script nella tabella dati come "Script tabella".Questi script salvano il metodo utilizzato per generare un determinato report in JMP e sono portabili (ovvero possono essere copiati e incollati tra tabelle di dati con gli stessi nomi di colonna).
- Alla finestra dello script : questo metodo salva le informazioni necessarie per riprodurre un determinato report in una finestra di script. È utile per operazioni in più passaggi o per la produzione di più report. Anche il contenuto di una finestra di script può essere trasformato in uno script di tabella.
- Negli Appunti : questo metodo è utile per spostare il codice necessario per un report in un'altra piattaforma JMP (ad esempio, Query Builder, Application Builder, ecc.) o per generare codice prototipo per progetti più grandi.
Si scopre che i programmatori davvero efficienti sfrutteranno ampiamente queste opzioni del triangolo rosso durante le loro sessioni di codifica. Li usano per accelerare la codifica (perché battere le chiavi quando non è necessario?) o generare codice prototipo di piattaforma che altrimenti sarebbe facile da confondere e difficile da eseguire il debug. Per i programmatori principianti, queste opzioni offrono diverse opportunità per conoscere e utilizzare JSL mentre si approfondiscono i dettagli del suo utilizzo. È qui che vogliamo iniziare la nostra avventura di programmazione.
Salva script > Nella tabella dati
Se sei un utente JMP nell'area di New York o New Jersey: Ciao! Probabilmente ho visitato la tua azienda ad un certo punto. (In caso contrario, mandami un PM; dobbiamo sistemare il problema.) E, quando sono venuto sul posto, probabilmente mi hai sentito insistere su questo punto: DEVI salvare il tuo lavoro e con "salvare il tuo lavoro" intendo usare il file Salva script…nella tabella dati opzione nel menu del triangolo rosso. Tornando alla mia prima esperienza con l'automazione di un flusso di lavoro, è così che ho iniziato: salvando una serie di report standardizzati del Generatore di grafici in una tabella JMP che aggiornavo regolarmente. Non posso sottolineare abbastanza il potere di questo piccolo suggerimento. È come avere il Cacciavite Sonico del Dr. Who. Le possibilità sono infinite.
Diamo un'occhiata a un rapido esempio:
- Aprire Guida > Libreria dati di esempio > Big Class Families.jmp
- Apri una finestra di dialogo di distribuzione: Analizza > Distribuzione
- Inserisci età, sesso, altezza e peso Y, Colonne e fare clic OK .

- Nel menu del triangolo rosso Distribuzioni, seleziona Salva script > Nella tabella dati

- Dagli un nome (o usa semplicemente quello predefinito). Se utilizzi l'impostazione predefinita in questo caso, verrà visualizzata nella tabella dati come Distribuzione 2 perché c'è già a Distribuzione script nella tabella dati.

- Ora guarda di nuovo la tabella dei dati nell'angolo in alto a sinistra. Dovresti vedere lo script della tabella nell'elenco con un segno di spunta verde accanto.

Nel contesto di questa serie, questi script di tabella possono essere pensati come piccole applet (mini applicazioni) o macro. Sono direttamente trasferibili tra tabelle di dati (basta copiare e incollare), a condizione che i nomi delle colonne utilizzati nello script siano gli stessi . Possono anche essere modificati (fare clic con il tasto destro su uno e selezionare Modificare ). Pertanto, sono anche trasferibili su tabelle di dati che non hanno gli stessi nomi di colonna se si desidera modificare i nomi delle colonne nello script, il che non è un grosso problema. Tratteremo come farlo nel prossimo post. Gli script di tabella possono essere utilizzati anche per mettere insieme script più piccoli per automatizzare un flusso di lavoro più ampio. Tratteremo anche questo nel prossimo post.
Salva script > Negli appunti
Tratteremo l'ultima voce nel menu del triangolo rosso: negli appunti articolo. Tratteremo questo argomento in seguito perché la voce è identica a alla finestra dello script opzione, ma molto meno istruttiva. Questo non vuol dire che non sia utile, solo che non puoi vedere cosa sta succedendo. Quindi, per motivi di tempo, ecco cosa fa. Prende il codice creato da Salva script…nella tabella dati e lo inserisce negli appunti in modo da poterlo inserire in un altro script da qualche parte. È comodo. E, man mano che le tue capacità di scripting crescono, capirai dove ti è utile. Per il momento, voglio tornare all'opzione più interessante e utile: salvare in una finestra di script.
Salva script > Nella finestra dello script
La voce successiva nel Salva script in... menu del triangolo rosso, tratteremo quello che probabilmente è il più istruttivo dei tre di cui sto discutendo. Salvare uno script in una finestra di script fa esattamente quello che dice: crea una finestra di Script Editor (approfondiremo lo Script Editor nel prossimo episodio) e la popola con JSL generato da JMP per ricreare qualunque cosa fosse nella finestra di script. finestra da cui stavi lavorando. Il punto importante di questo articolo è che puoi studiare il codice e imparare da ciò che ha generato JMP.
Diamo un'occhiata ad un esempio banale utilizzando nuovamente Big Class. Vai avanti e fai clic sul pulsante verde accanto allo script salvato per eseguire nuovamente l'analisi. Quindi, nella finestra del report, seleziona Salva script > Nella finestra dello script dal menu del triangolo rosso. Ora, guarda cosa ha scritto JMP nella finestra Script.

JMP ha creato un report di distribuzione: Distribuzione(…);. JMP ha inserito nel report due sottogruppi di distribuzione nominale: Distribuzione nominale(Colonna(…)) e due sottogruppi di distribuzione continua: Distribuzione continua(Colonna(…)). Alla fine dello script, JMP ha inserito una parte di codice incredibilmente importante: il “;”. Si chiama “Operatore Colla” e ne parleremo più dettagliatamente nel prossimo episodio. Per ora, devi solo sapere che è un modo per segnalare a JMP quando sta eseguendo il codice che sta arrivando un'altra istruzione. Il fatto che JMP lo metta automaticamente alla fine rende la vita dello scripter alle prime armi molto meno complicata.
L'ultimo punto che rende questa voce così utile è cosa succede se lasci aperta la finestra dello script. Vai avanti e chiudi la piattaforma di distribuzione, ma lascia aperto lo Script Editor. Ora, utilizzando la tabella dati aperta, crea un report Adatta Y per X (in Analizza) utilizzando Altezza come variabile X e Peso come variabile Y.

Quindi, seleziona Salva lo script nella finestra dello script Ancora.

Hai notato come la finestra è stata aggiornata con un'altra voce? Lo script ora ricreerà le due finestre con cui stavi lavorando, una volta che saprai come eseguirne una. A proposito…
Esecuzione di script
Quindi, hai del codice in una finestra di script, e adesso? Probabilmente vorrai essere in grado di eseguire il codice che hai creato. Voglio dire, potresti lasciarlo così per impressionare le persone che passano davanti alla tua scrivania, ma probabilmente è meglio gestirlo. Esistono alcuni modi per eseguire il codice in JMP: il menu principale, le scorciatoie da tastiera, le barre degli strumenti nella parte superiore della finestra di scripting, il tasto Invio o semplicemente facendo clic con il pulsante destro del mouse. Esaminiamo rapidamente ciascuno di questi.
Il menu principale e le scorciatoie da tastiera
IL Esegui script il comando si trova nello stesso posto in Windows e MacOS. Se ti trovi in una finestra di scripting, vai sotto Modifica > Esegui script . Il tasto di scelta rapida per questo è CTRL+R per finestre e CMD+R per Mac OS.
Il pulsante della barra degli strumenti nella parte superiore della finestra di scripting
Se guardi la parte superiore della finestra dello script, dovresti trovare a Esegui script pulsante (a meno che tu non abbia le barre degli strumenti nascoste). In Windows, appare come un piccolo pulsante di riproduzione verde, simile a quelli degli script di tabella. In MacOS, sembra un piccolo documento JSL con un JMP Man e il pulsante di riproduzione verde.
Utilizzando il tasto Invio
Nota qui che intendo il pulsante nella parte in basso a destra del tastierino numerico su una tastiera estesa. Se premi quel pulsante, JMP eseguirà la riga di JSL in cui si trova il cursore. L'ho usato molto prima di prendere confidenza con il debugger JSL.
Facendo clic con il tasto destro
Selezionando del codice e facendo clic con il tasto destro verrà visualizzato un menu contestuale che ha un file Esegui script opzione verso il basso.
Ti consiglio di provare le diverse forme di esecuzione degli script e di trovare quella che ti piace di più. Ho un debole per i tasti di scelta rapida, tranne quando sono in Application Builder, dove preferisco utilizzare le opzioni della barra degli strumenti. Con il passare del tempo, probabilmente graviterai su uno o due che diventeranno i tuoi preferiti. Inoltre, come nota a margine: tutte queste opzioni fanno cose leggermente diverse a seconda che tu abbia selezionato una sezione di codice, che il cursore si trovi alla fine di una riga o che il cursore si trovi su una riga vuota. Quindi potresti voler sperimentare un po' anche con quello.
Conclusioni per questa settimana
Va bene, che tu ci creda o no, ora hai abbastanza informazioni per essere follemente pericoloso con JSL... in senso positivo, ovviamente. Lascia che ti mostri cosa intendo.
Usiamo lo script che abbiamo creato oggi. Apporterò una piccola modifica avvolgendo una New Window(); funzione attorno alla distribuzione e alle funzioni bivariate create da JMP. Puoi saperne di più su Nuova finestra(...); nell'indice degli script. Si noti che la prima parte di Nuova Finestra(…); inizia sulla riga 1 e l'ultima parte è sulla riga 10! Ho impostato il mio Script Editor per disegnare una bella linea che li collega in modo da poter vedere dove sono (ne parleremo più avanti).

Quindi, copiamo il testo per quello script e torniamo alla tabella dei dati. Selezionare Nuova sceneggiatura dal menu del triangolo rosso nell'angolo in alto a sinistra della tabella dati.

Incolla il testo dello script nella finestra di dialogo, assegnagli un nome utile e fai clic OK .

Se stai seguendo, dovresti vedere il tuo rapporto nell'area script della tabella dati. Se lo esegui, dovresti ottenere qualcosa del genere:

E questo è il piccolo trucco che ho utilizzato per trasformare una maratona analitica di due giorni in un esercizio di taglia e incolla di 15 minuti. Ho dedicato un po' di tempo a inserire i dati in una tabella dati JMP che potevo aggiornare facilmente. Ho quindi esportato tutti i grafici di cui avevo bisogno per quel report in un'unica finestra JSL utilizzando Salva lo script nella finestra dello script . Li ho racchiusi in una nuova finestra (in modo che fossero tutti in un unico posto) e ho inserito lo script in uno script di tabella nella tabella dei dati. Stavo lavorando con JSL? SÌ. Stavo scrivendo molto codice? NO. Ho aumentato la mia efficienza? Decisamente.
Ora che stiamo entrando nella codifica vera e propria, devo sottolineare quest'ultimo punto. Codificare significa aumentare il tuo efficienza :
- Con quanta efficienza puoi risolvere i problemi.
- Con quanta efficienza puoi creare report (in modo da poter tornare a risolvere i problemi).
- Con quanta efficienza puoi lavorare con i tuoi dati.
Il codice che creeremo in questa serie è generato dal computer o è semplice. E va bene così. Riguarda efficiente codice no sexy codice. Quando ero al college, uno dei miei professori (un collega musicista) aveva una citazione sul muro fuori dal suo ufficio: La musica semplice non è né migliore né peggiore della musica complessa. Lo stesso vale con il codice. Me lo ha ricordato qualche tempo fa la persona che mi ha insegnato a programmare. Quindi, ricorda: Il codice semplice non è né migliore né peggiore del codice complesso. Tutto ciò che conta è che soddisfi lo scopo previsto e aumenti l’efficienza o la produttività di chi lo utilizza.
Compiti a casa
Per l'esercizio di questa settimana, ripenserai alla dichiarazione del tuo problema. Rifletti sull'elenco completo che hai creato e genera codice utilizzando i flussi di lavoro trattati oggi. Il codice può essere il codice effettivo che utilizzerai o il codice prototipo che ritieni di dover modificare leggermente per rispondere alla dichiarazione del problema. Prova a generare tutti i frammenti che ritieni necessari utilizzando il menu del triangolo rosso e salvali come file .jsl. Se rimani bloccato o non riesci a trovare un modo per fare in modo che JMP generi il codice che ti serve, chiedi aiuto nella Community o nei commenti qui. Non dimenticare di cercare nella Guida e non dimenticare che puoi cercare anche nella Community!
Alla prossima, buona fortuna e buona programmazione!