Tengo una gran cantidad de archivos csv que deben limpiarse. Todos estos archivos tienen el mismo formato, lo que facilita un poco la tarea. Mi archivo csv inicial tiene el siguiente formato:
| Receta de artículo: (001) 48pt | | | | | |
| Receta de escenario: 48pt | | | | | |
| ID de lote: Prod1 | | | | | |
| Número de artículo: 42 | | | | | |
| Fecha/hora: 01/05/2017 16:28:56 | | | | | |
| | | | | | |
| Punto | Medición | Ganar | GFit | X | Y |
| 1 | 12.3 | 99.7 | 0.99 | 1 | 1 |
| 2 | 12.2 | 99.9 | 0.98 | 2 | 2 |
| 3 | 12.1 | 99.8 | 0.98 | 3 | 3 |
Las primeras 6 filas deben limpiarse. Estoy pensando en colocar las primeras 6 filas en una nueva tabla y transponerlas. Después del traspuesto, une la mesa con la otra sección. Mi tabla JMP ideal es la siguiente:
| Receta del artículo: | Receta de escenario: | ID del lote: | Identificación del producto: | Fecha y hora: | Punto | Medición | Ganar | GFit | X | Y |
| (001) 48 puntos | 48 puntos | prod1 | 42 | 01/05/2017 16:28:56 | 1 | 12.3 | 99.7 | 0.99 | 1 | 1 |
| (001) 48 puntos | 48 puntos | prod1 | 42 | 01/05/2017 16:28:56 | 2 | 12.2 | 99.9 | 0.98 | 2 | 2 |
| (001) 48 puntos | 48 puntos | prod1 | 42 | 01/05/2017 16:28:56 | 3 | 12.1 | 99.8 | 0.98 | 3 | 3 |
| | | | | | | | | | | |
Estoy probando un script jsl pero está más allá de mi capacidad en este momento. ¿Alguien puede darme una idea de cómo lograr esto?
Gracias
Hola Craige,
Funciona como se anuncia.
Muchas gracias
Buena descripción del problema, y creo que su plan funcionará. Puede usar el asistente de vista previa de importación de texto para hacer parte del trabajo. Al limitar el número de líneas a 5, puede obtener el encabezado, y al elegir campos de ancho fijo puede obtener dos columnas (o tal vez los espacios, en plural, funcionarían aún mejor para el delimitador). (Si mi copia y pegado de sus datos estropeó las pestañas y los espacios, es posible que deba ajustar un poco los delimitadores de columna). El script de origen está en la tabla y puede obtener una copia para su script más grande:
Open(
"C:\Users\v1\Desktop\x.txt",
columns(
Column( "c000001", Character, "Nominal" ),
Column( "c000002", Character, "Nominal" ),
Omitted Column( . )
),
Import Settings(
Fixed Column Widths( 13, 28, 98 ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 0 ),
Column Names Start( 1 ),
Data Starts( 1 ),
Lines To Read( 5 ),
Year Rule( "20xx" )
)
)
First five linesFirst five linesprimeras cinco lineas
A continuación, importe de nuevo, omitiendo las 5 líneas, y tome ese script también:
Open(
"C:\Users\v1\Desktop\x.txt",
columns(
Column( "Point", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "Measurement", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "Gain", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "GFit", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "X", Numeric, "Continuous", Format( "Best", 12 ) ),
Column( "Y", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 7 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
)
Data at bottom of fileData at bottom of fileDatos en la parte inferior del archivo
Todo el JSL anterior fue escrito por el asistente de vista previa de importación de texto y almacenado en el script de origen adjunto a la tabla.
The Subset section has part of the answerThe Subset section has part of the answerLa sección Subconjunto tiene parte de la respuesta.