Quindi, in questa dimostrazione, esamineremo la selezione di righe specifiche e l'utilizzo del comando subset, che si trova in modo interattivo nel menu Tabelle, per estrarre un sottoinsieme della tabella di dati. Quindi, nel diario del corso nella sezione, farò clic su Dati sulla temperatura del rifugio sciistico. E questa è una tabella di dati ampia, ma abbastanza corta. E quindi il nostro scenario qui è che abbiamo una stazione sciistica che ha una stazione meteorologica e registra la temperatura ogni ora e la salva in un file. E quindi ogni osservazione del file avrà la data più le letture orarie della temperatura. Sta alle AM, così come la temperatura alle AM. Supponiamo ora che quando la temperatura scende sotto i meno gradi Celsius, pensiamo di accendere gli innevatori, perché a quella temperatura potrebbe essere troppo freddo per nevicare. E quindi vogliamo guardare il nostro record di dati storici per trovare i giorni nel record in cui avremmo usato quella macchina per l'innevamento. Forse stiamo cercando di giustificare l'aggiunta di un'altra macchina o la sostituzione di quella esistente. E quindi un paio di cose qui. Uno è che questa temperatura è stata registrata su una scala Fahrenheit, non Celsius. E due, stiamo usando solo un piccolo sottoinsieme di dati. Ora questi sono in ordine di giorno, ma questo rappresenta una delle nostre migliori pratiche su quando lavorerai su un set di dati di grandi dimensioni, prova a ottenere un campione rappresentativo di osservazioni per lo sviluppo del tuo script in modo da poterlo sviluppare e testare il tuo script contro un sottoinsieme più piccolo. Ancora una volta, si spera che rappresenti eventuali problemi che potresti aspettarti di trovare nei dati. E quindi puoi testarlo rispetto all'intero set di dati. Quindi, in questo esempio, si spera che questo sia rappresentativo, che abbiamo preso solo una settimana di dati. L'altra cosa è che abbiamo le temperature Fahrenheit registrate ma il nostro limite è di meno gradi Celsius. Quindi, mentre possiamo certamente convertire meno gradi Celsius in Fahrenheit, reitteremo invece questo concetto di lavorare con le operazioni vettorizzate ed estrarremo tutte le temperature Fahrenheit come matrice e le convertiremo in Celsius temperature. Quindi nel diario c'è uno script pre-scritto chiamato Isolate Snow-Making Days Script. E lo eseguirò un pezzo alla volta. E in questa dimostrazione, utilizzerò effettivamente l'opzione del registro incorporato anziché navigare avanti e indietro nella finestra del registro. Quindi farò clic con il pulsante destro del mouse nella finestra dell'editor di script e selezionerò Mostra registro incorporato. E lo ridimensionerò in modo che possiamo ancora vedere l'intero script nella parte dell'editor della finestra. Quindi selezionerò la riga ed eseguirò quella. E così ottiene il riferimento per la tabella dati corrente, la tabella dati temperatura Ski Lodge, e lo memorizza in dt. Quindi invierò il messaggio get as matrix e lo memorizzerò nella variabile tempF. Quindi eseguirò la riga E spesso con una matrice più grande, invece di visualizzare la matrice nel registro, otteniamo semplicemente le dimensioni della matrice e l'indicazione che è stata assegnata. Ora nota che sono sette righe e colonne. E se torno alla tabella dati, ci sono colonne in questa tabella dati. Allora perché abbiamo tirato fuori solo le colonne? Bene, se guardi la colonna della data, per prima cosa puoi vedere che è nominale. Quindi ciò suggerisce che forse questo viene trattato come dati di carattere piuttosto che numerici. E posso confermare ulteriormente che, ovviamente, potrei andare alle informazioni sulla colonna, ma posso inoltre confermarlo allargando leggermente la colonna e notando che i valori sono giustificati a sinistra, ed è così che JMP gestisce i dati dei caratteri. Quindi, quando ho inviato get come matrice alla tabella dei dati, ha ignorato questa colonna di caratteri e ha estratto solo le colonne numeriche. La linea quindi prenderà ogni elemento nella variabile tempF, quella matrice che è memorizzata lì, e la convertirà in Celsius e la memorizzerà in tempC. E di nuovo ricevo lo stesso messaggio nel registro, ma puoi passare il mouse su tempf o tempc ovviamente per vedere i loro valori. Successivamente voglio contare le righe in tempC e l'ho menzionato come una procedura consigliata, contando le righe o le colonne al di fuori di un ciclo. Quindi conto le righe nella matrice tempC e le memorizzo nella variabile nr. Quindi correrò in linea e ovviamente ce ne sono sette. L'altra cosa che voglio fare è che voglio avere... Creerò due matrici. Uno che fornisce la temperatura minima in un dato giorno, è minTemp, e l'altro che indicherà se l'impianto di innevamento doveva essere acceso o meno, e si chiama Machine. Ed entrambi inizieranno con un certo numero di righe, una colonna e valori mancanti. E quindi in linea stiamo collegando a cascata la funzione di assegnazione. Uso quella funzione J per creare una matrice con un certo numero di righe, ecco il numero di righe da tempC, quella singola colonna come ho detto e il valore mancante. E se Machine, minTemp e qualsiasi altra variabile inizieranno con lo stesso valore, possiamo semplicemente assegnarli in questo modo a cascata come vedi in linea Quindi lo eseguirò, e nel registro e se passi il mouse sopra Machine o minTemp vedi solo quella colonna di valori mancanti. Quindi voglio eseguire il ciclo e inizio con un contatore che test r inferiore o uguale ai numeri memorizzati in nr, quindi il corpo del ciclo for è che avrò una variabile chiamata obs che prenderà in questo case, la prima riga e tutte le colonne in tempC. Troverò il valore minimo in quella riga e lo metterò al rth, o al primo posto, in minTemp. Quindi confronterò il valore che ho appena inserito in minTemp in quella posizione con meno e se questo confronto è vero, se il valore è inferiore a meno ne otterrò uno booleano è il risultato e lo metterò nella prima posizione in Macchina, mentre se è falso, se è maggiore o uguale a meno inserirò Machine. Quindi aggiorniamo, testiamo di nuovo e ora obs verrà sovrascritto con la riga successiva nella tabella dei dati. E faremo gli stessi passaggi finché non popoleremo sia minTemp che Machine. Quindi esaminerò le righe e possiamo passare con il mouse su minTemp. E di nuovo appare nella guida al passaggio del mouse, appare anche nella parte inferiore della finestra di inserimento dello script che puoi vedere in basso. E posso passare il mouse sopra Machine e ci sono quelli e gli ultimi due passaggi in cui avremmo potuto trasmettere questi messaggi a cascata, ma a scopo dimostrativo, li separeremo. Quindi invierò un nuovo messaggio di colonna a dt. Si chiamerà minTemp e i valori saranno solo quelli che ho appena ottenuto da quel ciclo for. Quindi esaminerò le righe E puoi vedere sullo sfondo che è stata creata quella nuova colonna. Avrei potuto aggiungere un argomento di formato alla nuova colonna per avere un numero fisso di cifre decimali, ad esempio. Questo ha anche restituito un riferimento a un oggetto colonna che avrei potuto archiviare in una variabile se avessi intenzione di lavorare di nuovo con quella colonna. Quindi il prossimo pezzo di codice sta impostando nuove colonne un messaggio su dt. Questo si chiama Make Snow. E i valori provengono da quel vettore di colonna della macchina, che ha e E qui il mio script richiederà di utilizzare etichette di valori dove se c'è un valore per i dati l'etichetta sarà no, e se c'è un valore per i dati il l'etichetta sarà sì. E poi, ovviamente, utilizziamo quello booleano per attivare l'opzione per utilizzare le etichette dei valori. Quindi eseguirò le righe Ancora una volta, stiamo creando un'istanza di un oggetto colonna. E voglio tornare alla tabella e scorrere. Quindi nella colonna in questo momento ciò che stiamo visualizzando è no e sì. Nel pannello delle colonne Se scorro verso il basso, puoi comunque vedere che Make Snow è continuo, il che significa che sono dati numerici per i valori dei dati effettivi. E un'altra cosa con le etichette dei valori quando le sto usando-- e quell'asterisco nel pannello delle colonne indica anche che c'è una proprietà, e se hai fatto clic su quella vedresti questa-- quando sto usando le etichette dei valori , se passo con il mouse su una cella nella tabella dei dati, mi mostra il valore effettivo dei dati. Ma se dovessi creare un grafico in questo momento o qualsiasi tipo di analisi, utilizzerebbe queste etichette purché siano attivate. E poi di nuovo nello script, potremmo ancora una volta sovrapporre questi messaggi alla tabella dei dati, ma a scopo dimostrativo, li faremo in questi passaggi. Invio select dove alla tabella dei dati e sto cercando le righe in cui il valore nella colonna Make Snow è uguale a Quindi eseguirò la riga E puoi vedere sullo sfondo ci sono quattro righe che sono state selezionate. E poi finalmente invio il comando subsect alla tabella dei dati. Fornisco un nome di tabella di output e specifico le colonne. E poiché ho selezionato quattro righe, non devo dire quali righe voglio. Quelli saranno automaticamente quelli inseriti nella tabella dei sottoinsiemi. Quindi esaminerò le righe E ora abbiamo quella tabella di sottoinsiemi. Anche in questo caso, potremmo scegliere di formattare i dati di temperatura minima. Lo script di origine riflette il sottoinsieme. E in realtà diamo una rapida occhiata a questo, se faccio clic con il pulsante destro del mouse sulla fonte e seleziono modifica. Ogni volta che creo un nuovo script utilizzando un comando dal menu Tabelle, indipendentemente dal fatto che lo faccia in modo interattivo o con uno script, ottengo lo script di origine. E quindi mostra solo che subset era il comando della tabella utilizzato. L'attenzione con il sottoinsieme è che non sa perché queste righe sono state estratte, quindi codifica in modo rigido quelle righe. Non c'è alcuna base per quella selezione nello script che JMP scrive. E JMP sovrascrive anche quella tendenza predefinita a estrarre semplicemente le righe selezionate inserendo a come argomento nelle righe selezionate. Quindi, se vuoi catturare lo script e adattarlo a un altro script che stavi scrivendo, vorresti sbarazzarti delle due righe che ho mostrato e prima di inviare il messaggio del sottoinsieme, effettuare qualsiasi selezione logica del tuo script richiesta . Quindi annullerò quella sceneggiatura. Quindi questo è stato un esempio di utilizzo di un comando dal menu della tabella, ma anche di lavoro con i dati come matrici.