Concatenar una lista de tablas y agregar una "columna de origen"Tengo una lista de tablas abiertas (nombres) que quiero concatenar y agregar una nueva "Columna de origen" que se puede recuperar de la misma lista de nombres de tablas. Probé todas las "soluciones" anteriores: publicadas en este foro de discusión sin suerte (solo suerte parcial)
Puedo obtener mis tablas concatenadas siguiendo una solución publicada por TXNelson, pero parece que no puedo hacer que funcione la "Columna de origen".Agradeceré cualquier ayuda para resolver esto.
tables = {"R1", "R2", "R3"};
TablesN ={};
For(k = 1, k <= n Rows ( Data Table(tables[i] )),k++,
Insert Into(TablesN, Data Table (tables [i] ) << get name));<BR />
// the concatenation works like a charm
Data Table = New Table ("RST");
For( i = 1, i <= N Items( tables ), i++,
Data Table( "RST" ) << Concatenate(
Data Table( tables[i] ),
append to first table(1)
);
//Close( Data Table( tables[i] ), No Save );
);
// this part fails<BR />
data table( "RST" ) << add multiple columns("Source Table", 1, before first, character );
:Source Table << set values( TablesN );secuencias de comandosRe: Concatenar una lista de tablas y agregar una "columna de origen"@milisegundo - Sí, tenía los "nombres" no los objetos. Muchas gracias por tomarse el tiempo para ayudarme.
Saludos,
AlfredoRe: Concatenar una lista de tablas y agregar una "columna de origen"La lista mesas debe contener objetos de tabla de datos (la primera parte de mi código ilustra una forma de crear dicha lista) y todas las tablas aún deben estar abiertas cuando se ejecuta el código. De lo contrario obtendrá la ventana emergente.
Después de ejecutar el código, puede cerrar todas las tablas de datos (guardadas) en la lista en un solo paso con tablas << cerrar ventana;.
Re: Concatenar una lista de tablas y agregar una "columna de origen"Hola MS,
Probé tu código:
dt = New Table( "RST" );
dt << concatenate( tables, append to first table( 1 ), create source column( 1 ) );
y crea una ventana emergente que me permitiría seleccionar las tablas para concatenar, lo que anula el propósito de crear un script para automatizar el proceso.No itera a través de la lista de "tablas".Estoy usando JMP 15.
Solo para su información, esta es la publicación que he estado usando para guiarme. Gracias.
https://community.jmp.com/t5/Discussions/JSL-bug-Concatenate-all-opened-table-into-1-table-and-close-all/mp/275804
Re: Concatenar una lista de tablas y agregar una "columna de origen"La última parte debería funcionar si la lista tiene algún valor. Echa un vistazo al primer bucle for; usa k como iterador pero dentro del ciclo i, no definido, se utiliza como índice de lista.
Una columna de origen también se puede crear automáticamente con Concatenar() como en el siguiente ejemplo .
// Create a list of data tables
names = {"R1", "R2", "R3"};
tables = {};
For( i = 1, i <= N Items( names ), i++,
Insert Into( tables, Data Table( names[i] ) )
);
// Concat all and create a source column in one step
dt = New Table( "RST" );
dt << concatenate( tables, append to first table( 1 ), create source column( 1 ) );