Concatenar todas las tablas de datos usando JSLHola, quiero concatenar todas las tablas de datos abiertos. Sin embargo, la cantidad de tablas de datos puede variar y quiero que el script pueda adaptarse a diferentes cantidades de tablas.
Este es el código de lo que quiero hacer, sin embargo quiero generalizarlo:
Tabla de datos( N Tabla() ) << Concatenar(
Tabla de datos ((N Tabla()-1)),
Tabla de datos ((N Tabla()-2)),
Tabla de datos ((N Tabla()-3)),
Tabla de datos ((N Tabla()-4)),
Tabla de datos ((N Tabla()-5)),
Tabla de salida ("Todas las temperaturas"),
Crear columna de origen
);
Este es el código que probé, se produce un error de nombre no resuelto de la tabla de salida (en este caso, noTemps es 6)
Tabla de datos( N Tabla() ) << Concatenar(
Para (i = 1, i < (noTemps), i++,
Tabla de datos ((N Tabla()-i)),
);
Tabla de salida ("Todas las temperaturas"),
Crear columna de origen
);
Automatización y secuencias de comandosAcceso a los datosCombinación y limpieza de datosRe: Concatenar todas las tablas de datos usando JSL¿Qué versión de JMP estás usando?
Re: Concatenar todas las tablas de datos usando JSLSi JMP16+ lo usaría para cada uno y recorrería la lista de tablas
Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = dt1 << Subset(All Rows, Selected Columns(0), Output Table("DEMO"));
dts = Get Data Table List();
dt_first = Remove From(dts, 1); // remove first table as we concatenate to that
For Each({dt}, dts,
dt_first << Concatenate(
dt,
"Append to first table",
"Create source column"
);
// Close(dt, no save);
);Re: Concatenar todas las tablas de datos usando JSLGracias por su respuesta, sin embargo, estoy luchando para que esto se aplique a mi situación (aunque creo que debería ser relativamente fácil).
¿Qué es DT? Recibo un error de nombre no resuelto.
Tampoco tengo asignado dt1 porque todas las tablas ya están abiertas desde la parte anterior del script. ¿Cómo puedo asignarlo sin llamar directamente a una tabla específica?
Sin embargo, si asigno dt1 como se muestra a continuación, se produce una tabla de demostración, la tabla está llena de la palabra demostración.
dt1 = Abrir( "$DOCUMENTOS/Plot_Conduction_Losses/Module 6/DUT2/100C.jmp" );
Lo siento si esto está mal explicado y con muchas palabras.
Re: Concatenar todas las tablas de datos usando JSLdt1 y dt2 están ahí sólo con fines de demostración. Obtienes las referencias a todas las tablas abiertas usando Obtener lista de tablas de datos(). ¿Qué versión de JMP estás usando (para cada una se requiere JMP16+, pero se puede reemplazar por For)? dt es una referencia a una tabla de datos que se puede encontrar en la lista de referencias de tablas de datos en dt.
Re: Concatenar todas las tablas de datos usando JSLTengo JMP 17.
Ahora entiendo la parte dt, perdón por la confusión.
dts = Obtener lista de tabla de datos();
dt_first = Eliminar de(dts, 1); // elimina la primera tabla a medida que la concatenamos
Para cada uno({dt}, dts,
dt_first << Concatenar(
dt,
//Agregar a la primera tabla,
"Crear columna de origen",
Tabla de salida ("Todas las temperaturas"),
);
//Cerrar(dt, sin guardar);
);
Esto no es exactamente lo que quiero. Produce 6 nuevas tablas de datos, todas concatenadas con dt_first.Me gustaría que fuera una nueva tabla de datos. Si descomento, agrego a la primera línea de la tabla. produce 6 columnas de origen que no puedo usar para ordenar en análisis posteriores.
Re: Concatenar todas las tablas de datos usando JSLNo recordaba que puedes usar una lista con concatenar
Names Default To Here(1);
Open("$SAMPLE_DATA/Students.jmp");
Open("$SAMPLE_DATA/Students1.jmp");
Open("$SAMPLE_DATA/Students2.jmp");
dts = Get Data Table List();
dt_first = Remove From(dts, 1)[1]; // remove first table as we concatenate to that
dt_result = dt_first << Concatenate(dts, "Create source column");
También tengo que/debería obtener el primer índice de Remove From() porque Remove From() devuelve una lista.