Guardar tabla de datos con columnas transpuestasMe he quedado atascado tratando de obtener una tabla de datos para guardar correctamente después de transponer las columnas. Tengo una tabla de datos con límites de especificaciones en las primeras tres filas, y quiero guardarlas en un archivo separado para poder usar ese archivo como un archivo de límites que se aplica a los datos sin procesar como parte de un diagrama de distribución de datos. Cada vez que abro el archivo SPEC LIMITS guardado, todavía tiene las columnas en el formato no transpuesto. Tanto la tabla con las columnas no transpuestas como la tabla con las columnas transpuestas están abiertas en la pantalla:
dt = Abrir (ruta); // Selecciono el archivo al archivo de datos para abrir. Los límites de las especificaciones están en las primeras 3 filas
x = 3; // Número de filas que no son datos en bruto (y tienen límites de especificaciones)
n = N Fila (dt); // Obtener el número total de filas en la tabla
Para (i = n, i> x, i--, // Eliminar todas las filas que comienzan en la fila 4 hasta el final de la tabla
dt << Eliminar filas (i);
n = dt << Obtener nombres de columna ();
dt << Transponer (
columnas (n),
Tabla de salida ("LÍMITES DE ESPECIFICACIONES")
);
: Label << Set Name ("Parameter");
: Fila 1 << Establecer nombre ("LSL");
: Fila 2 << Establecer nombre ("USL");
: Fila 3 << Establecer nombre ("Unidades");
dt << Guardar ("SPEC LIMITS.jmp"); // No guarda la tabla de datos con las columnas de tabla transpuestas.
También intenté guardar la tabla como parte de una instrucción de cierre y obtuve el mismo resultado:
close (dt, Save ("SPEC LIMITS.jmp"));
Estoy seguro de que hay una explicación fácil, pero ¿qué se necesita para guardar la tabla con las columnas transpuestas? ¡Gracias!
Re: Guardar tabla de datos con columnas transpuestasGracias por la aclaración... Voy a intentarlo
Re: Guardar tabla de datos con columnas transpuestas1. @stephen_pearson El código es una excelente mejora sobre @JensRiege código. Sin embargo, la fuente del problema con el código original, mientras se corrige en @stephen_pearson Código, no fue anotado en el nuevo código.
El principal problema con la falla al guardar el código, fue que se usó la variable "dt" al guardar la tabla de datos
dt << Save("SPEC LIMITS.jmp");
"dt" apunta a la tabla de datos original, y cuando se creó la tabla de datos de transposición,
dt << Transpose(
columns(n),
Output Table( "SPEC LIMITS" )
);
aparentemente se asumió que la variable "dt" apuntaría ahora a la nueva tabla de datos.
@stephen_pearson crea correctamente una nueva columna "dt2" para apuntar a la nueva tabla creada por la "Transposición", y luego la utiliza en la función "Guardar"
dt2 = dt << Transpose(
columns(n),
Output Table( "SPEC LIMITS" )
);
:Label << Set Name( "Parameter" );
:Row 1 << Set Name( "LSL" );
:Row 2 << Set Name( "USL" );
:Row 3 << Set Name( "Units" );
dt2 << Save("$DESKTOP\SPEC LIMITS.jmp");<BR /><BR />
Su código original debería funcionar, si agregó el identificador "dt2" a su Transpose () y cambió la referencia "dt" en su función Guardar a "dt2"
Re: Guardar tabla de datos con columnas transpuestasPrueba esto:
dt = currentdatatable(); // I select the file to data file to open. Spec limits are in first 3 rows
x = 3; // Number of rows that are not raw data (and have spec limits)
dt << select where(Row()>x);
dt << delete rows;
n = dt << Get Column Names("Numeric");
dt2 = dt << Transpose(
columns(n),
Output Table( "SPEC LIMITS" )
);
:Label << Set Name( "Parameter" );
:Row 1 << Set Name( "LSL" );
:Row 2 << Set Name( "USL" );
:Row 3 << Set Name( "Units" );
dt2 << Save("$DESKTOP\SPEC LIMITS.jmp"); // Save data table with table columns transposed.1) Borrado simplificado de las filas.
2) Obtener solo nombres de columna numéricos. Si hay columnas de caracteres, la transposición fallará si las columnas de datos tienen diferentes tipos de datos
3) Especifique una ubicación para guardar el archivo ($ HOME, $ TEMP también son opciones para explorar). Si no lo hace:
Problema de E / S
No se puede abrir en modo ReadWrite.
El sistema no puede encontrar el archivo especificado.
No se puede guardar el archivo.