Aggiornare facilmente una tabella di dati JMP da un foglio di calcolo - Parte 1Nell'era dei big data vorremmo avere tutti i dati, ad esempio, in database, server Hadoop o accedervi direttamente dai flussi. Tuttavia, molti dati vengono ancora salvati o scritti in fogli di calcolo, aggiornati manualmente o automaticamente da macchine, ingegneri, operatori di laboratorio o altri tipi di operatori. In JMP è facile importare qualsiasi tipo di dato da un foglio di calcolo a JMP. Puoi anche automatizzarlo facilmente utilizzando lo script "Sorgente" generato automaticamente. Tuttavia, se esegui nuovamente questo script, si apre una nuova tabella dati e non aggiorna la tabella dati corrente.
Di solito questo non è esattamente quello che vuoi. Perché? Potresti aver già eseguito la pulizia o la ricodificazione dei dati. Potresti anche aver eseguito alcune analisi salvate nella tabella dati che desideri utilizzare in seguito anche per i nuovi dati. In questo articolo ti mostrerò un modo per aggiornare la tua tabella dati corrente con nuovi dati da un foglio di calcolo, preservando le righe che hai attualmente e aggiungendo solo le nuove righe dal foglio di calcolo.
Ci sono due scenari che voglio trattare:
- In questo articolo tratterò il caso semplice dei dati strutturati verticali. Ciò significa che hai una riga con i nomi delle colonne e nelle altre righe oltre ci sono i dati.

- In un secondo articolo Tratterò il caso dei dati strutturati orizzontali. Cioè la prima riga/prima colonna è il nome del parametro, nelle colonne seguenti ci sono i dati. Nella seconda riga ci sono le unità, nella terza riga il numero di lotto. Poi una riga vuota e poi ancora la stessa cosa per un altro parametro. Questo è più facile da leggere in un foglio di calcolo ma in realtà non è molto facile da analizzare. Vedo spesso questo tipo di dati, anche se sarebbe molto meglio addestrare le persone a inserire i dati in modo verticale piuttosto che cercare di aggirare il problema con la struttura orizzontale.

Diamo quindi un'occhiata ai dati del foglio di calcolo, sono dati meteorologici ed è semplicistico per dimostrare il concetto. In allegato troverai lo script nella tabella dati JMP e i fogli di calcolo Excel per il primo caso.
Cominciamo dalla situazione
Abbiamo già importato una versione precedente del foglio di calcolo (3 righe di dati fino a quel momento). Ora vogliamo aggiornare la tabella dei dati. Viene visualizzato uno script di aggiornamento nella finestra in alto a sinistra della tabella dati. Questo script farà quanto segue:
- Accedi al nome della tabella dati corrente e al numero di righe in quella tabella dati
- Imposta il nome del file del foglio di calcolo e il nome del foglio di lavoro da cui vogliamo ottenere i nuovi dati
- Apre il foglio di calcolo e legge i dati del foglio di lavoro in una tabella di dati della guida.
- Facciamo affidamento sullo script sorgente generato quando abbiamo importato i dati la prima volta.
- Ma abbiamo modificato la voce "I dati iniziano sulla riga" da (2) a (2+n_Rows), quindi otteniamo solo i dati che non abbiamo già importato
- Ora non ci resta che concatenare le due tabelle utilizzando l'opzione "Aggiungi alla prima tabella".
cdt = Current Data Table();
excelFile = "WeatherData.xlsx";
name_worksheet = "WeatherData"; // or "Sheet1" for this Excel book example
n_Rows = N Rows();
dt_h1 = Open(
excelFile,
Worksheets( name_worksheet ),
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 + n_Rows ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 )
),
Invisible
);
cdt << Concatenate (dt_h1, Append to first table);
Close(dt_h1);
Conclusione
Non sembra difficile. La cosa bella è che puoi utilizzare, ad esempio, funzionalità di pulizia dei dati come la ricodifica, salvarli come una colonna formula e i nuovi dati verranno gestiti automaticamente. Oppure hai creato un modello predittivo con i dati precedenti, hai salvato la formula di previsione nella tabella dei dati e hai visualizzato le previsioni per i nuovi dati (e, ad esempio, confrontali con un nuovo modello o con i dati effettivamente previsti). Sono sicuro che troverai molti casi d'uso e spero che questo ti sia utile.
Ovviamente puoi usarlo ed estenderlo aggiungendo analisi ai dati, come aggiornando un grafico di controllo o altre analisi di tendenza. Utilizzando l'Utilità di pianificazione di Windows potresti voler aggiornare il tuo report e inviarlo al nostro nuovo prodotto JMP in diretta , in modo che altre persone (non necessariamente utenti con licenza JMP) possano accedere ai report in un browser Web con l'interattività di JMP come il filtro dati, il cambio di colonna e così via.
Cosa aspettarci dopo
Nel mio prossimo post parlerò del secondo caso che è leggermente diverso, ma non molto più difficile.
Sono interessato a sapere se hai questo tipo di problema o come sono strutturati i tuoi dati (nei fogli di calcolo). Per favore lascia i tuoi commenti
Ti auguro il meglio,
Martino
PS: due commenti ai file:
- In WeatherData.jmp troverete uno script per l'aggiornamento della tabella dati con il File Excel allegato. Entrambi i file devono essere salvati nella stessa cartella (questo per semplicità, puoi facilmente modificare il nome del file codificato con ad esempio Pick File(), e anche estrarre il nome.
- Il secondo script è "Rimuovi ultime due righe" che consente di rimuovere righe nella tabella dati per aggiornarla nuovamente dal foglio Excel, senza dover eliminare manualmente le righe. Quindi tutto per la tua comodità

Ottieni la tabella dati JMP corrente aggiornata con nuovi dati da un ( verticale strutturato), preservando le modifiche apportate nella tabella dati corrente.
- Parte 1Ri: Aggiornamento semplice di una tabella dati JMP da un foglio di calcolo - Parte 1Ciao Hogi,
questa sarebbe un'opzione se non apporti modifiche ai dati precedenti. Ad esempio, potresti già aver effettuato alcuni controlli di qualità dei tuoi dati e modificato o escluso dati o fatto commenti aggiuntivi o altro. Non appena cambi qualcosa, questo modo di aggiungere i dati eliminerà tutte le modifiche che di solito non sono desiderate.
Ri: Aggiornamento semplice di una tabella dati JMP da un foglio di calcolo - Parte 1un altro approccio:
1) caricare i nuovi dati tramite Fonte Copione
2) rimuovi tutte le righe dalla tabella principale
3) aggiungi i nuovi dati tramite concatenazione
dt = Current Data Table();
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
Ri: Aggiornamento semplice di una tabella dati JMP da un foglio di calcolo - Parte 1Ciao hogi, grazie per le tue opzioni aggiuntive, molto gentili.
e hai ragione:
"Aggiorna tabella principale con i dati della seconda tabella" utilizzerà semplicemente le colonne nella tabella corrente e aggiornerà le colonne se i nomi delle colonne corrispondono. Non aggiungerà nessuna delle altre colonne dalla seconda tabella.
"Unisci colonne con lo stesso nome" unirà/sovrascriverà/riempirà anche i punti vuoti con i dati in colonne con nomi simili. Ma aggiungerà anche le altre colonne della seconda tabella.
Per la prima si potrebbe utilizzare anche la funzionalità Tabelle->Aggiorna, soprattutto se non si vuole creare una nuova tabella dati con questa operazione ma aggiornare quella esistente con i dati della seconda.
Non sono a conoscenza che ci sia qualche altra differenza.
Ri: Aggiornamento semplice di una tabella dati JMP da un foglio di calcolo - Parte 1Mi chiedevo solo quale sia la differenza tra " Aggiorna la tabella principale con i dati della seconda tabella " E " unire colonne con lo stesso nome " - qui fanno esattamente la stessa cosa, giusto?

Dopo aver armeggiato per un po', ho trovato una differenza quando utilizzavo una seconda tabella con colonne aggiuntive:
-" Aggiorna la tabella principale con i dati della seconda tabella " aggiornamenti la tabella principale (di unendo colonne con lo stesso nome ), nessuna colonna aggiuntiva
-" Unisci le colonne con lo stesso nome "fa il Stesso , ma aggiunge inoltre le nuove colonne della seconda tabella.
Ci sono più differenze?
Ri: Aggiornamento semplice di una tabella dati JMP da un foglio di calcolo - Parte 1In alternativa è possibile utilizzare la piattaforma di adesione...
Per prima cosa carica entrambe le tabelle:
Open( "$DOWNLOADS/WeatherData.jmp" );
Open( "$DOWNLOADS/WeatherData.xlsx", Worksheets( "Backup_NewData" ), );
Quindi il modo più semplice è unirli "per numero di riga":
Data Table( "WeatherData" ) << Join(
With( Data Table( "Backup_NewData" ) ),
Merge Same Name Columns,
By Row Number
);
In alternativa, il Data La colonna può essere utilizzata per identificare singole voci indipendentemente dal numero di riga.
Ciò consente un modo più efficace per unire le tabelle tramite Corrispondenza colonne :
(NB: a causa dello spostamento temporale di 1 minuto, il 15 e il 16 ottobre verranno visualizzati due volte)
Data Table( "WeatherData" ) << Join(
With( Data Table( "Backup_NewData" ) ),
Merge Same Name Columns,
By Matching Columns( :Date = :Date ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 1 )
)
Re: Aggiornamento di una tabella dati JMP da un foglio di calcolo semplificato - Parte 1@martindemel , hai menzionato sopra:
Per il primo caso si può anche usare la funzionalità Tabelle->Aggiorna, soprattutto se non si vuole creare una nuova tabella dati con questa operazione ma aggiornare quella esistente con i dati del secondo.
Questo è esattamente quello che voglio fare, ma "Aggiorna" non ha un'opzione per aggiungere righe dalla nuova tabella, aggiorna solo i dati esistenti. E "Join" non ha un'opzione per NON creare una nuova tabella dati. Questo è molto frustrante perché sto usando questa tabella dati con un join virtuale e il collegamento del join virtuale si interrompe con la nuova tabella dati.
Ho trovato un elemento nella Wishlist di JMP per questo: "Join tabelle: opzione per aggiornare la tabella principale" . Vota l'elemento nella Wishlist se desideri che venga implementato in JMP.