Unión de mesa de muchos a unoQuerido señor, señora,
Tengo dos mesas que necesito unir.
Dos solicitudes:
Solicitud 1)
La tabla 1 tiene múltiples entradas por día.

La tabla 2 tiene 1 entrada por día.

Me gustaría unirme a las tablas que coinciden con "Nombre del conjunto de parámetros y marca de tiempo"
para crear una tabla como esta.¿Cómo puedo hacer eso?

Solicitud 2)
Dadas las dos primeras tablas, ¿cómo las uno para que para cada día obtenga solo el último valor para el parámetro X como se muestra a continuación?

¿Alguna idea y sugerencia?
Gracias, Timoteo.
Organización de contenidosCombinación y limpieza de datosventanasRe: Unión de mesa de muchos a uno¿Qué versión de JMP tienes? Si tiene JMP17, es más fácil tener las tablas abiertas, vaya al menú Unir tablas y pruebe diferentes opciones. La solicitud 1 debe ser una unión muy simple y, para la solicitud 2, es posible que deba crear una tabla de resumen antes de realizar la unión.
Además, si puede proporcionarnos tablas de ejemplo (trabajos anónimos o maquetas), podremos brindarle instrucciones más precisas.
Re: Unión de mesa de muchos a unoTengo JMP 16.Puse tablas simuladas en mi publicación.¿Puedes verlos?
Re: Unión de mesa de muchos a unoOk, si tienes JMP16, no tendrás acceso a las tablas de vista previa, pero puedes habilitar la opción "mantener el diálogo abierto" para que, si estropeas algo, aún tengas el diálogo abierto.
Puedo ver las imágenes, pero en realidad no son tablas porque no puedo abrirlas en JMP o no puedo introducir los datos en JMP. Si pudieras agregarlas como tablas JMP, sería mucho más fácil.
Re: Unión de mesa de muchos a unoPara la opción 2 hay un truco sucio:
Unirse siempre toma la primera entrada coincidente.
Entonces con la opción

- si usted contrarrestar los pedidos de la tabla (mediante clasificación descendente) , el valor "último" (ahora: primero) permanecerá.
Entonces, mesas menos abiertas, pero una sensación extraña si lo que prometo es realmente cierto 
dt= new table("test", add rows(8),New Column( "Column 1",
set values([1 1 1 1 1 2 2 2])
)
);
dt << New Column( "Rank1", set each value( Col Rank( 1,:Column 1 ) ));
dt2 = dt << Subset( All rows, Selected columns only( 0 ) );
dt2: Rank1 << set name("Rank2");
dt << Sort(By( :Rank1 ),Replace Table,Order( Descending, Descending ));
dt2 << Sort(By( :Rank2 ),Replace Table,Order( Descending, Descending ));
dt << Join(
With( dt2 ),
Merge Same Name Columns,
Match Flag( 0 ),
By Matching Columns( :Column 1 = :Column 1 ),
Drop multiples( 1, 1 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 0 )
);
Re: Unión de mesa de muchos a unoGracias por la respuesta.Estoy un poco confuso al crear una columna virtual.¿Podrías dar más detalles?
Muchas gracias
Re: Unión de mesa de muchos a unocrear columna virtual ~ transformar columna:
haga clic derecho en una de las columnas de la lista y seleccione fila/fila:

Re: Unión de mesa de muchos a unoAquí hay algunas imágenes para apoyar @jthi y @hogi sugerencias
Número 1
Tablas=>Unir Unir la Tabla 2 a la Tabla 1

Número 2
Tablas => Ordenar Cree una columna virtual y llámela Fila... la fórmula para la columna es Fila()

Entonces
Tablas =>Unir Unir la tabla 1 a la tabla 2

Aquí está el JSL que ejecutará los 2 números.
names default to here(1);
dt1 = New Table( "Table 1",
Add Rows( 6 ),
New Column( "Parameter Set Name",
Character,
Set Values(
{"27109N5", "27109N5", "27109N5", "27109N5", "27109N5", "27109N5"}
)
),
New Column( "Timestamp",
Format( "yyyy-mm-dd", 12 ),
Input Format( "yyyy-mm-dd" ),
Set Values(
[3600115200, 3600115200, 3600201600, 3600201600, 3600201600, 3600201600]
)
),
New Column( "Parameter X",
Set Values( [2.32, 1.21, 1.45, 1.45, 7.89, 2.04] )
)
);
dt2 = New Table( "Table 2",
Add Rows( 2 ),
New Column( "Parameter Set Name",
Character,
Set Values( {"27109N5", "27109N5"} )
),
New Column( "Timestamp",
Format( "yyyy-mm-dd", 12 ),
Input Format( "yyyy-mm-dd" ),
Set Values( [3600115200, 3600201600] )
),
New Column( "Parameter Y",
Format( "Best", 12 ),
Set Values( [21, 22] )
)
);
// Join data tables
// → Data Table( "One to Many" )
Data Table( "Table 1" ) << Join(
With( Data Table( "Table 2" ) ),
Merge Same Name Columns,
By Matching Columns(
:Parameter Set Name = :Parameter Set Name, :Timestamp = :Timestamp
),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "One to Many" )
);
// Create the Many to One table
// Sort data table
Data Table( "Table 1" ) << Sort(
By(
:Parameter Set Name,
:Timestamp,
Transform Column( "Row", Formula( Row() ) )
),
Replace Table,
Order( Ascending, Ascending, Descending )
);
// Join Table 1 to Table 2
// Join data tables
// → Data Table( "Many to One" )
Data Table( "Table 2" ) << Join(
With( Data Table( "Table 1" ) ),
Merge Same Name Columns,
By Matching Columns(
:Parameter Set Name = :Parameter Set Name, :Timestamp = :Timestamp
),
Drop multiples( 1, 1 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "Many to One" )
);