Unir dos conjuntos de datos, entre fechas, mediante identificador.Hola a todos, soy nuevo en esto.
Estoy intentando combinar y hacer coincidir dos tablas/conjuntos de datos diferentes de dos fuentes diferentes, con muy pocos identificadores únicos...
Ejemplo de proceso: Se procesa un widget (en este caso, con dos reactivos diferentes) y la tabla de resultados (abajo, una fila por evento) contiene "Fecha y hora de inicio de la operación" y "Fecha y hora de finalización de la operación". El identificador único del widget es "SFC" y "Orden de compra".
Tabla de salida 1

Entre la "Fecha y hora de inicio de la operación" y la "Fecha y hora de finalización de la operación" se envían datos del proceso (abajo, 24 filas por evento)...
Tabla de resultados 2

Estoy intentando correlacionar los datos de envío (Tabla de Salida 2) con los datos de evento (Tabla de Salida 1), básicamente los resultados de cada evento. Si bien cada "SFC" (widget) está conectado a "Pedido de Tienda", tienen múltiples conjuntos de datos de evento; por ejemplo, SN12345 == Pedido de Tienda 98765, y pueden tener múltiples envíos "DATE" (Tabla de Salida 2), pero cada envío "DATE" tiene un "GROUP_ID" único por envío.
El objetivo principal es hacer coincidir la Tabla de salida 2 "NOMBRE" y "VALOR" con el "Tipo de reactivo" en la Tabla de salida 1, para luego poder visualizar la comparación de reactivos.
Espero haberlo explicado suficientemente bien (claro como el barro) ¡y espero que así sea como funcione este sitio!
¡Gracias de antemano!
Combinación y limpieza de datosCompartir y comunicar resultadosRe: Unir dos conjuntos de datos, entre fechas, por identificador.¡Qué comunidad tan increíble! ¡Gracias!
Re: Unir dos conjuntos de datos, entre fechas, por identificador.No estoy seguro de si esto es exactamente lo que busca. Los datos de ejemplo no coinciden bien según la hora de inicio y la hora de finalización. Ejecute el siguiente código con datos más completos. También adjunto las dos tablas de datos de ejemplo que proporcionó.
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 );
Re: Unir dos conjuntos de datos, entre fechas, por identificador.¿Podrías proporcionar ejemplos de conjuntos de datos para realizar pruebas? Si es necesario, puedes anonimizar los datos usando la función de anonimización de JMP, disponible en el menú Tablas. Creo que puedes anonimizar todo excepto las horas y el SFC, ya que son necesarios para la comparación.