Unione di due serie di dati, tra date, tramite identificatore.Ciao a tutti, è la prima volta,
Sto cercando di combinare e abbinare due tabelle/set di dati diversi provenienti da due fonti diverse, con pochissimi identificatori univoci...
Esempio di processo: un widget viene elaborato (in questo caso con due reagenti diversi) e la tabella di output (in basso, una riga per evento) contiene "Data e ora di inizio operazione" e "Data e ora di completamento operazione". L'identificatore univoco del widget è "SFC" e "Ordine di acquisto".
Tabella di output 1

Tra "Data e ora di inizio operazione" e "Data e ora di completamento operazione" vengono inviati i dati del processo (di seguito, 24 righe per evento)...
Tabella di output 2

Sto cercando di abbinare i dati di invio (Tabella di output 2) ai dati dell'evento (Tabella di output 1), essenzialmente i risultati di ciascun evento. Sebbene ogni "SFC" (widget) sia collegato a "Ordine di acquisto", hanno più set di dati di evento; ad esempio SN12345 == Ordine di acquisto 98765, e possono avere più invii "DATA" (Tabella di output 2), ma ogni invio "DATA" ha un "GROUP_ID" univoco per invio.
L'obiettivo principale è quello di abbinare "NOME" e "VALORE" della Tabella di output 2 al "Tipo di reagente" nella Tabella di output 1, in modo da poter visualizzare il confronto dei reagenti.
Spero di essermi spiegato abbastanza bene (chiaro come il fango) e spero che questo sito funzioni così!
Grazie in anticipo!
Combinazione e pulizia dei datiCondivisione e comunicazione dei risultatiOggetto: Unione di due serie di dati, tra date, tramite identificatore.Che comunità incredibile! Grazie!
Oggetto: Unione di due serie di dati, tra date, tramite identificatore.Non sono sicuro che sia esattamente quello che desideri. I dati di esempio non forniscono una corrispondenza molto buona in base all'ora di inizio e di completamento nei tuoi dati di esempio. Esegui il codice seguente su dati più completi. Ho anche allegato le due tabelle di dati di esempio che hai fornito.
Names Default To Here( 1 );
dt1 = Data Table( "Output 1" );
dt2 = Data Table( "Output 2" );
// Loop through the Output 1 data table and set a unique id,
// and assign the same unique id to the Output 2 data rows
// that fall within the start and completion times
dt1 << New Column( "The Row", formula( Row() ) );
// Turn values to static
dt1:The Row << delete formula;
// Add a new column to the Output 2 data table that will be
// filled in below
dt2 << New Column( "The Row" );
For( i = 2, i <= N Rows( dt1 ), i++,
foundRows = dt2 << get rows where(
dt2:SFC == dt1:SFC[i] & dt2:SHOP_ORDER == dt1:Shop Order[i] & dt1:Operation Start Date Time[i] <= dt2
:DATETIME & dt1:Operation Completion Date Time[i] >= dt2:DATETIME
);
If( N Rows( foundRows ) > 0,
dt2:The Row[foundRows] = dt1:The Row[i];
)
);
// Join the data
dt3 = dt1 << Join(
With( dt2 ),
By Matching Columns(
:SFC = :SFC,
:Shop Order = :SHOP_ORDER,
:The Row = :The Row
),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 0 ),
Preserve main table order( 1 )
);
// Cleanup the data tables
// uncomment the 2 lines below to automate the cleanup
// dt1 << delete columns(:The Row );
// dt2 << delete columns(:The Row );
Oggetto: Unione di due serie di dati, tra date, tramite identificatore.Potresti fornire set di dati di esempio per i test? Se necessario, puoi rendere anonimi i dati utilizzando la funzionalità Anonimizza di JMP, disponibile nel menu Tabelle. Credo che sia possibile rendere anonimo tutto, tranne orari e SFC, perché sono necessari per la corrispondenza.