Unisci i dati per timestampHo bisogno di unire due diversi set di dati. Il primo, A, ha i dati raccolti ogni 2 minuti. Il secondo, B, ha dati raccolti solo quando una misurazione ha superato una soglia.
Un campione
2017-01-21:00:02:00, 1, 2, 3, 4
2017-01-21:00:04:00, 2, 3, 4, 5
2017-01-21:00:06:00, 3, 4, 5, 6
...
B-campione
2017-01-21:00:02:05, 4500
2017-01-21:00:05:14, 5700
...
Sarà sufficiente inserire i dati B nella riga A più vicina. Ad esempio, i dati B alle 21-01-2017:00:05:14 potrebbero essere inseriti nella riga-A=21-01-2017:00:06:00
Ho circa 170.000 righe in A; e circa 4.000 righe in B.
Grazie
Re: Unire i dati per data e oraGrazie mille txnelson! Lo proverò.
-Gzhou
Re: Unire i dati per data e oraEcco una modifica dello script che credo ti darà quello che vuoi.Ora, non è stato completamente testato, dal momento che non hai fornito tabelle di dati di esempio, ma credo che dovrebbe funzionare, se la variabile in cui stai inserendo il numero dell'esperimento è chiamata "Esperimento".
Names Default To Here( 1 );
Clear Symbols();
list_tables = {};
For( i = 1, i <= N Table(), i++,
Insert Into( list_tables, Data Table( i ) << get name )
); //sets up names of data tables to pick from
dt1 = Data Table( list_tables[1] );
dt2 = Data Table( list_tables[2] ); //Reasonable Starting point
win_tableselect = New Window( "Select Tables",
<<MODAL></MODAL>Re: Unire i dati per data e oraCome è possibile modificare questo script JMP per consentirgli di unire due tabelle di dati facendo corrispondere due variabili diverse?
Ad esempio: nel set di dati di seguito, vorrei abbinare per Experiment # e quindi abbinare per il minimo locale del timestamp per unire i valori della tabella dati 2 alla tabella dati 1 in modo tale che i valori della tabella dati 2 siano in una riga di il timestamp più vicino nella tabella dati 1 con l'esperimento corretto #.
Un campione
Esperimento 1, 2017-01-21:00:02:00, 1, 2, 3, 4
Esperimento 1, 2017-01-21:00:04:00, 2, 3, 4, 5
Esperimento 2, 2017-01-21:00:06:00, 3, 4, 5, 6
...
B-campione
Esperimento 1, 2017-01-21:00:02:05, 4500
Esperimento 2, 2017-01-21:00:05:14, 5700
Qualsiasi assistenza sarebbe utile!
Grazie
Re: Unire i dati per data e oraJim,
Grazie mille. Penso che ora siamo tutti a posto.
Re: Unire i dati per data e oraC'erano un paio di elementi che non funzionavano con le ultime versioni di JMP nello script a cui si faceva riferimento.Li ho rielaborati e rimosso il requisito per eseguirlo come chiamata di funzione.Quindi tutto ciò che devi fare è aprire le 2 tabelle di dati ed eseguire lo script seguente.L'ho eseguito contro i tuoi dati e ha funzionato bene.Non sono sicuro che i risultati siano esattamente quelli che desideri, ma ti darà una tabella di dati su cui puoi lavorare.
Names Default To Here( 1 );
Clear Symbols();
list_tables = {};
For( i = 1, i <= N Table(), i++,
Insert Into( list_tables, Data Table( i ) << get name )
); //sets up names of data tables to pick from
dt1 = Data Table( list_tables[1] );
dt2 = Data Table( list_tables[2] ); //Reasonable Starting point
win_tableselect = New Window( "Select Tables",
<<MODAL></MODAL>Re: Unire i dati per data e oraallegando sottoinsiemi dei file che sto usando
Re: Unire i dati per data e oraGrazie per la risposta rapida.
Ho inserito una colonna "datetime-in-seconds" in ogni tabella, quindi tutti i punti dati hanno un timestamp.
Eseguo lo script, mi chiede di scegliere una colonna in ogni tabella, cosa che faccio selezionando la colonna "datetime-in-seconds" in ogni tabella.
Il risultato finale è solo una colonna aggiuntiva in dt2 chiamata "Loc Min" che è semplicemente numeri interi ascendenti 1,2,3,..
La funzione non funziona o mi sfugge qualcosa su come usarla?
Re: Unire i dati per data e orahttps://community.jmp.com/t5/Discussions/Join-Question-timestamp-range-kinda-sorta/mp/20828
Questo lo farà o almeno ti porterà sulla strada giusta. Ed è stupidamente veloce.