Una buona query può predisporti al successo
Livello: Principiante
Brian Corcoran, Direttore di ricerca e sviluppo JMP, SAS
JMP fornisce una varietà di modi per ottenere un'ampia gamma di formati di dati nel prodotto. Il motivo è abbastanza ovvio. Ci sono molti strumenti sviluppati nel corso degli anni per raccogliere e formattare i dati. Nella maggior parte dei casi questi strumenti non consentono di convertire i dati in tabelle dati JMP. È necessario ottenere questi dati in JMP per l'analisi. In altri casi, i dati potrebbero essere in un database da qualche parte e devi estrarli prima di iniziare. L'acquisizione dei dati può richiedere tempo prezioso. JMP si è evoluto nel corso degli anni per aggiungere potenti capacità di acquisizione dati per aiutarti in questa attività.
Questo documento tenta di fornire un piccolo campione di come utilizzare le funzionalità di Query Builder in JMP, insieme a un semplice esempio di utilizzo di Excel Wizard. Speriamo che mostri anche che il viaggio può anche essere la ricompensa, in quanto è possibile ottenere informazioni sui dati dalla preparazione della query stessa. Mentre la versione Windows è utilizzata per gli screenshot del desktop, tutte le funzionalità discusse qui sono disponibili anche nella versione Mac di JMP. È stato utilizzato JMP 14, ma anche JMP 13 può fare tutto ciò di cui si è discusso.
Questo documento presenta un caso di utilizzo ipotetico. Immagina di studiare le tendenze mondiali e che il database della Banca Mondiale fornisca spesso informazioni preziose. Un collega ti dice che i dati dell'indicatore di sviluppo mondiale del 2017 sono diventati disponibili di recente e che hanno inserito i dati nel database SQL Server aziendale. Questa è una tabella di grandi dimensioni, con oltre 400.000 osservazioni e 62 colonne. [1] Apri JMP e selezioni File->Database->Query Builder, apri la connessione al database e punti alla tabella. Nella prima schermata di Query Builder, selezioni la tabella world_bank come tabella primaria e utilizzi "Table Snapshot" per dare un'occhiata:
Query Builder Table SnapshotSnapshot della tabella del generatore di querySnapshot della tabella del generatore di query
È un formato un po' strano, almeno per un tipico utente JMP. Ci sono quattro variabili o colonne per le informazioni sul paese, e poi una colonna per ogni anno di dati. Le righe hanno quella che sembra essere una regione e poi i dati misurati. Per certi aspetti, sembra l'opposto delle aspettative per una tipica tabella JMP. Il nome del paese " Mondo arabo " sembra rappresentare una regione, quindi anche questo è fonte di confusione. Se si preme il pulsante " Importa ora ", la tabella entra e le cose diventano un po' più chiare. Scorrendo fino al centro si può vedere che le righe iniziano con il paese in questione, e poi il bit di dati per un argomento particolare, come " Popolazione rurale ". Tutto questo è ordinato per paese, il che non sembra intuitivo.
Immediate Import Table AppearanceAspetto della tabella di importazione immediataAspetto della tabella di importazione immediata
Ricominciamo. Questa volta possiamo andare avanti e selezionare " Crea query " anziché " Importa ora ". Sappiamo di volere le prime quattro variabili con le informazioni sul paese, quindi possiamo selezionarle e premere " Aggiungi " nella scheda Colonne incluse del pannello di selezione delle colonne in Query Builder. Ci sono molti dati qui, quindi facciamo solo le variabili per il 2010-2017. A questo punto, la parte superiore della finestra di dialogo appare come segue:
Initial Column SelectionSelezione iniziale della colonnaSelezione iniziale della colonna Non abbiamo ancora migliorato la nostra situazione precedente. Ora possiamo spostare la variabile " Codice indicatore " nel riquadro Ordina per del Query Builder. Ciò organizzerà i dati in base all'argomento studiato, anziché in base alla regione o al paese in questione. Ciò sembra più intuitivo per l'analisi.
Ordered by Indicator CodeOrdinato per codice indicatoreOrdinato per codice indicatore
Ci sono ancora problemi con i dati. Innanzitutto, ha raggruppamenti regionali che al momento non interessano. Come escludere queste voci aggregate? Inoltre, qual è il modo migliore per interrogare un elemento specifico, come "Consumo di fertilizzanti" ?
Sarebbe sicuramente possibile importare tutti i dati in JMP e poi eliminare i raggruppamenti regionali se non si ordina per "codice indicatore". Tuttavia, ciò grava sulla persona che analizza i dati. Se non è qualcuno che imposta la query, potrebbe creare confusione. All'interno della query, sarebbe possibile selezionare solo i paesi di interesse. E se volessimo tutti i paesi dell'Unione Europea? (Avevo intenzione di usare il Nord America, ma la definizione della Banca Mondiale contiene solo gli Stati Uniti, le Bermuda e il Canada!) Potremmo selezionarli manualmente, ma c'è un modo migliore. Per farlo, invocheremo rapidamente un altro strumento in JMP, l'Excel Wizard.
In questo scenario, supponiamo di lavorare spesso sui dati della Banca Mondiale. I codici paese sono importanti, ma non intuitivi. Le tabelle spesso usano i codici senza specificare il nome completo del paese, come puoi vedere guardando il sito web. Potrebbe essere utile avere quei codici in una tabella separata. Tale tabella esiste ed è facilmente importabile dal sito web come file Excel. Quindi, in questo caso, apri Excel Wizard sulla tabella dei paesi e dei codici paese. Il sito web della Banca Mondiale li raggruppa in una tabella oscura chiamata CLASS.xls, ma puoi rinominarla. Ci sono due tabelle all'interno del file, "List of economies" e "Groups". Diamo un'occhiata a "Groups":
Preview of Groups Table in Excel FileAnteprima della tabella dei gruppi nel file ExcelAnteprima della tabella dei gruppi nel file Excel
C'è il raggruppamento per il mondo arabo che abbiamo visto nei dati di Query Builder. Sembra promettente, ma scorrendo verso il basso non viene ancora mostrata l'Europa poiché l'anteprima termina a 100 righe. Seleziona " Mostra tutte le righe " e possiamo vedere tutto, inclusi " Europa e Asia centrale ", " Area Europa " e " Unione Europea ". Il gruppo " Unione Europea " contiene i codici paese per tutti i paesi attualmente nell'unione. Potremmo usarlo per selezionare i paesi all'interno di Query Builder? La risposta è sì, quindi andiamo avanti ed estraiamo solo il gruppo di cui abbiamo bisogno. Possiamo farlo selezionando la prima riga nell'anteprima con " Unione Europea " e quindi premendo il più verde accanto a " I dati iniziano sulla riga".
Select the First Row in “European Union”Seleziona la prima riga in “Unione Europea”Seleziona la prima riga in “Unione Europea”
Ora possiamo premere il pulsante “Avanti” nella finestra di dialogo, selezionare l’ultima riga con “ Unione Europea ” e premere il più verde accanto a “ I dati terminano con la riga ”. Questo riduce i dati solo ai paesi che ci interessano.
Ora possiamo selezionare “ Importare ” e ottenere una riga con 28 voci per i paesi dell'Unione Europea. Andiamo avanti e salviamo la tabella JMP risultante come “EU.jmp”.
Ora possiamo tornare a Query Builder. Avremmo potuto selezionare i paesi che ci interessano con un noioso processo di selezione in un elenco per "Country Name" o "Country Code". Tuttavia, Query Builder ha un potente tipo di filtro chiamato Match Column Values. Per utilizzarlo, trasciniamo prima " Country Code" nel riquadro Filtri . Ciò produrrà un lungo elenco con ogni codice al suo interno. Ora, possiamo selezionare il menu del triangolo rosso in " t1.Codice Paese " per Filter Type e selezionare " Valori delle colonne corrispondenti ". Verrà visualizzata una casella che mostra i nomi delle tabelle JMP aperte. Poiché abbiamo ancora "EU.jmp" aperto, viene visualizzato nell'elenco. Lo selezioniamo e la variabile ( Codice Paese ) che vogliamo abbinare. È anche importante assicurarsi che " Tutte le righe " sia selezionato dall'elenco a discesa, anziché " Righe selezionate ", poiché in questo caso vogliamo tutti i paesi.
Selecting the Match Column Values filterSelezione del filtro Valori colonna corrispondentiSelezione del filtro Valori colonna corrispondenti
Ciò ridurrà i nostri risultati alle sole osservazioni in cui è coinvolto un paese UE. Non c'è davvero nessuna magia qui. Stiamo creando una clausola WHERE/IN per sostituire i codici paese. Se guardi il riquadro SQL all'interno del Query Builder puoi vedere il codice SQL che JMP sta generando:
Generated SQLSQL generatoSQL generato
Ma speriamo di aver reso il processo molto più semplice da realizzare. Ora che abbiamo ristretto i dati a ciò che ci interessa davvero, sarebbe bello rendere più semplice la selezione delle informazioni specifiche che vorremmo analizzare. Per farlo, possiamo trascinare " Nome indicatore" nel riquadro Filtri . Mentre potremmo cliccare sulla voce che ci interessa qui e quindi eseguire la query, sarebbe bello poter avere un'interfaccia più interattiva per qualsiasi utente. Possiamo premere il menu del triangolo rosso da " t1.Nome indicatore" e selezionare " Richiedi all'esecuzione ". Questo ci presenterà una finestra di dialogo per specificare il titolo del prompt all'utente finale.
Prompt on RunRichiesta di esecuzioneRichiesta di esecuzione
Ora, quando premiamo il pulsante " Esegui query" , otterremo l'elenco degli elementi e potremo selezionare quello che ci interessa. Ad esempio, possiamo selezionare "Crescita PIL (% annuale)" e ottenere una tabella di 28 righe. Possiamo quindi inserirla in Graph Builder. Trascinando "Nome del Paese" nell'area di rilascio Forma mappa verrà prodotta una mappa dell'Europa, e quindi potremo trascinare l'anno di interesse. I dati iniziano a diventare radi dopo il 2014, quindi facendo quell'anno si ottiene:

JMP sta cercando "Slovacchia" anziché "Repubblica Slovacca", quindi potrebbe essere un'opportunità per usare Ricodificare. Osservando questi dati, sembra che faremo sempre un'operazione simile. Selezioneremo il Nome Paese per la Forma Mappa, quindi l'anno che ci interessa per esaminare i risultati. Se esamineremo ripetutamente un certo anno, ha senso salvare lo script e inserirlo in Query Builder come Script post-query . C'è una scheda nel riquadro di anteprima per questo. Se andiamo al nostro grafico precedente e, utilizzando il menu del triangolo rosso, facciamo Salva Script->Nella finestra Script, otterremo uno script simile a questo:
Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( Color( :Name( "2014" ) ), Shape( :Country Name ) ),
Elements( Map Shapes( Legend( 7 ) ) )
);
Se lo incolliamo nella scheda post-query Script , quando selezioniamo l'osservazione che vogliamo esaminare, eseguirà sempre lo stesso report Graph Builder dopo che i dati sono stati estratti e la tabella JMP è stata creata. Questo può semplificare notevolmente un'attività ripetitiva.
Post-Query ScriptScript post-queryScript post-query
La parte migliore è che quando salviamo la query, possiamo impostarla in modo che un utente finale non veda nemmeno le finestre di dialogo del Query Builder. Selezionando " Esegui all'apertura " nel menu a discesa accanto al campo Nome query e quindi salvando la query, l'utente finale vedrà solo il prompt e la tabella e il grafico risultanti.
Run on OpenEsegui su OpenEsegui su Open
Query with Run on Open started from Recent Files Query con Esegui all'apertura avviata dai file recenti Query con Esegui all'apertura avviata dai file recenti Un avvertimento con l'utilizzo del filtro Matching Columns è che la tabella con i valori da abbinare deve essere presente sulla macchina in cui eseguiremo la query. Se questo è un problema, c'è un modo per aggirarlo. Dopo aver creato il filtro con le colonne corrispondenti, vai al menu del triangolo rosso per il filtro. Nel caso di questo esempio, sarebbe per " t1.Country Code". Seleziona Filter Type -> Manual List. Ciò importerà i valori che il filtro Matching Columns aveva creato in un elenco di testo che verrà utilizzato per SQL. Questo verrà quindi salvato nella query la prossima volta che esegui un salvataggio e non avrai più bisogno della tabella dati da abbinare. Lo svantaggio di questo approccio è che la capacità di modificare dinamicamente i valori corrispondenti selezionati e di modificare la query viene persa.
A questo punto, abbiamo filtrato una grande quantità di dati confusi e creato una query e un'analisi ripetibili che possiamo inviare a un utente finale. La persona che utilizza la query non avrebbe realmente bisogno di conoscere la query, o in realtà gran parte di JMP.
Convenzioni utilizzate:
I riquadri della finestra Query Builder sono in grassetto
I pulsanti/controlli di dialogo sono " virgolettati e in grassetto"
I nomi delle variabili/colonne sono " tra virgolette e in corsivo "
[1] Gruppo della Banca Mondiale. Indicatori di sviluppo mondiale , Gruppo della Banca Mondiale, nd Web. 25 gennaio 2018. https://datacatalog.worldbank.org/dataset/world-development-indicators . Ottenuto con licenza Create Commons CC BY 4.0.