Desglose de tabla de una sola celdaEstoy tratando de analizar los datos de uno de los subcomponentes del dispositivo que fabrica mi empresa. Desafortunadamente, los datos útiles reales se guardan en una tabla que se condensa en una sola celda en la base de datos (ver más abajo). ¿Hay alguna manera de dividir estos datos en columnas y filas separadas mientras se mantienen todos los demás datos (por ejemplo, asignar el mismo número de serie a todas las nuevas filas de datos)? El objetivo final es tener algo como la tabla de Excel a continuación (que tuve que hacer a mano: P) con todos los números de serie, ID de la estación, etc. datos para cada fila.
Antes:
| ID de la estación | FechaInicioHora | De serie | FunctionalTestTable |
| 1223 | 1/1/2020 | ASDF1234 | Presión, Configuración de flujo, Variación de flujo, Valor de flujo, Resultado de flujo, UUT dP, Paso pos. 11.000,0.00,0.050,0.001,APROBADO,11.047,-156 10.000,3.00,0.250,3.097,APROBADO,9.984,-119 10.000,5.00,0.250,4.933,APROBADO,9.990,-103 10.000,10.00,0.500,9.847,APROBADO,9.973,-64 10.000,100.00,5.000,101.048,APROBADO,9.968,525 7.000,3.00,0.250,2.957,APROBADO,6.983,-114 7.000,5.00,0.250,4.885,APROBADO,6.988,-95 7.000,10.00,0.500,9.822,APROBADO,6.990,-48 7.000,80.00,4.000,80.916,APROBADO,6.981,518 4.000,3.00,0.250,3.078,APROBADO,3.981,-101 4.000,5.00,0.250,5.110,APROBADO,3.988,-76 4.000,10.00,0.500,9.980,APROBADO,3.987,-15 4.000,50.00,2.500,52.123,APROBADO,3.993,447 |
Después:
| ID de la estación | FechaInicioHora | De serie | Presión | Configuración de flujo | Variación de flujo | Valor de flujo | Resultado de flujo | UUT dP | Posición de paso |
| 1223 | 1/1/2020 | ASDF1234 | 11.000 | 0.00 | 0.050 | 0.001 | APROBAR | 11.047 | -156 |
| 1223 | 1/1/2020 | ASDF1234 | 10.000 | 3.00 | 0.250 | 3.097 | APROBAR | 9.984 | -119 |
| 1223 | 1/1/2020 | ASDF1234 | 10.000 | 5.00 | 0.500 | 4.933 | APROBAR | 9.990 | -103 |
| 1223 | 1/1/2020 | ASDF1234 | 10.000 | 10.00 | 5.000 | 9.847 | APROBAR | 9.973 | -64 |
| 1223 | 1/1/2020 | ASDF1234 | 10.000 | 100.00 | 0.250 | 101.048 | APROBAR | 9.968 | 525 |
| 1223 | 1/1/2020 | ASDF1234 | 7.000 | 3.00 | 0.250 | 2.957 | APROBAR | 6.983 | -114 |
| 1223 | 1/1/2020 | ASDF1234 | 7.000 | 5.00 | 0.250 | 4.885 | APROBAR | 6.988 | -95 |
| 1223 | 1/1/2020 | ASDF1234 | 7.000 | 10.00 | 0.500 | 9.822 | APROBAR | 6.990 | -48 |
| 1223 | 1/1/2020 | ASDF1234 | 7.000 | 80.00 | 4.000 | 80.916 | APROBAR | 6.981 | 518 |
| 1223 | 1/1/2020 | ASDF1234 | 4.000 | 3.00 | 0.250 | 3.078 | APROBAR | 3.981 | -101 |
| 1223 | 1/1/2020 | ASDF1234 | 4.000 | 5.00 | 0.250 | 5.110 | APROBAR | 3.988 | -76 |
| 1223 | 1/1/2020 | ASDF1234 | 4.000 | 10.00 | 0.500 | 9.980 | APROBAR | 3.987 | -15 |
| 1223 | 1/1/2020 | ASDF1234 | 4.000 | 50.00 | 2.500 | 52.123 | APROBAR | 3.993 | 447 |
¡Gracias!
David

Acceso a los datosRe: Desglose de tabla de una sola celda@Jeff_Perkinson Espero que hayas hecho eso en JMP 16...
Re: Desglose de tabla de una sola celdaMe alegra saber que ha puesto los datos en forma para que los analice.
Sí, puede crear un script para que lo haga por usted. Tomará un poco de trabajo, pero JMP crea algo para usted.
Aquí hay un esquema de cómo hacerlo.
JMP 15 no capturará el comando Texto en columnas... pero es una sintaxis bastante fácil de escribir:
// Text to columns
Data Table( "Community330288.jmp" ) <<
Text to Columns( columns( :FunctionalTestTable ), Delimiters( NEWLINE ) );
El siguiente paso es el comando Apilar. JMP coloca el JSL para esto en un script llamado Fuente en la tabla resultante.

Haga clic derecho en eso y elija Editar y obtendrá el script para copiar y pegar:
stacked_data = Data Table( "Community330288.jmp" ) << Stack(
columns(
:FunctionalTestTable 1,
:FunctionalTestTable 2,
:FunctionalTestTable 3,
:FunctionalTestTable 4,
:FunctionalTestTable 5,
:FunctionalTestTable 6,
:FunctionalTestTable 7,
:FunctionalTestTable 8,
:FunctionalTestTable 9,
:FunctionalTestTable 10,
:FunctionalTestTable 11,
:FunctionalTestTable 12,
:FunctionalTestTable 13,
:FunctionalTestTable 14
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :StationID, :StartDateTime, :Serial ))
)
El siguiente paso es repetir el texto en columnas con coma como delimitador:
// Text to columns
stacked_data << Text to Columns( columns( :Data ), Delimiters( "," ) );
Otra cosa que JMP no registrará es el cambio de nombre de las columnas de la primera fila de datos. El cambio de nombre se puede programar, pero tendrá que escribirlo usted mismo.
Si sabe que el número de columnas siempre será el mismo (en este caso, 7), puede codificarlo. Si el número de columnas es variable, tendrás que trabajar un poco más. Avíseme si ese es el caso y ese es otro puente que podemos ayudarlo a cruzar.
for(i=1, i<=7, i++,
column("Data " || char(i))<<SET name=""></SET>
Finalmente, deberá seleccionar las filas que contienen nombres de columnas y eliminarlas. He codificado el nombre de la columna y el valor a continuación. Si son variables... bueno, solo tomará un poco más de trabajo.
stacked_data << Select Where( :Pressure == "Pressure" ) << Delete Rows;
Finalmente, cambie algunas columnas a numéricas. Deberá repetir esto para cada columna.
:Pressure << set data type(Numeric);
Espero que eso ayude.
Sigue llegando las preguntas.
Re: Desglose de tabla de una sola celda¡Oye, Jeff, eso funcionó perfectamente! Tengo una pregunta de seguimiento. ¿Hay alguna manera de guardar todos esos pasos como un script para no tener que rehacerlos cada vez que necesito extraer estos datos? Intenté guardarlo como un script de sesión, pero eso no guardó ninguno de los desgloses de datos.
Re: Desglose de tabla de una sola celdaHola @dpeyer ,
Aquí hay un complemento al que puede llamar para importar los datos.
Como alternativa, puede ejecutar el script para importar el archivo de texto a JMP.
Basé la importación en el archivo de texto de ejemplo adjunto.
Tanto el script como el complemento se pueden actualizar para concatenar archivos similares en un solo archivo.
salud,
Stan
Re: Desglose de tabla de una sola celdaHola Jeff,
He tenido unas palabras con el Ingeniero de Pruebas responsable, no te preocupes :P. Desafortunadamente, son 14k tablas separadas, cada una con su propia celda y encabezados repetidos en cada tabla. Adjunto una imagen de 3 (de los 14k...). ¡Probaré tu método y te dejaré saber cómo va!

Re: Desglose de tabla de una sola celdaEn primer lugar, quienquiera que haya creado una mesa como esta debería ser... bueno... puedo pensar en algunos castigos apropiados.
Afortunadamente, creo que JMP hará que esto sea relativamente fácil de manejar.
Primero, usa el Columnas -> Utilidades -> Texto a columnas.. . como @Mandy_Chambers sugerido, pero use NEWLINE como delimitador.

Esto debería darle una nueva columna para cada línea dentro de su columna FunctionalTextTables.

Ahora usa Tablas->Apilar para apilar todas las columnas de FunctionalTestTable # (es decir, FunctionalTestTable 1, FunctionalTestTable 2, etc.).

Esto le dará una fila para cada una de esas columnas.

Ahora, puedes usar Texto a columnas... de nuevo, esta vez con una coma (,) como delimitador.

Ahora obtendrá las columnas de valores individuales.

Ahora es cuestión de copiar y pegar los nombres de las columnas. Aquí hay un consejo para ayudarte allí. ¿Los nombres de las columnas te deprimieron? Prueba esto.Y luego, usa Cols->Estandarizar atributos para cambiar el tipo de datos de las columnas a Numérico según corresponda.
Dijiste que tenías una base de datos de 14k de estos. ¿Son 14k tablas diferentes en la base de datos o 14k filas de una tabla? Con suerte, esto último, ya que debería poder obtener todo eso en una tabla de datos JMP usando Archivo-> Base de datos-> Abrir tabla ...
Si realmente son 14k tablas diferentes, entonces deberá usar Tablas->Concatenar para ponerlos todos en una tabla en JMP, pero crucemos ese puente después de confirmar cuál está en la base de datos.
A pesar de todo, Seleccionar celdas coincidentes es otra herramienta que te ayudará a limpiar. Lo explicaré en una publicación de seguimiento después de que progresemos un poco más.
Re: Desglose de tabla de una sola celdaHmmm... No debo estar describiendo lo que estoy tratando de hacer correctamente. He actualizado mi pregunta original con un ejemplo de antes/después para intentar ilustrar mejor. Además, tengo una base de datos de 14,000 tablas de prueba funcionales para las que necesito hacer esto, por lo que hacer Texto a columnas y luego transponer cada tabla individual no es una opción viable.
¡Gracias por su ayuda! Realmente lo aprecio
Re: Desglose de tabla de una sola celda
Re: Desglose de tabla de una sola celdaMandy,
¡Gracias por el consejo! Aprendí sobre la utilidad Text to Columns justo antes de publicar este mensaje, pero eso creó 84 nuevas columnas por fila y perdí la funcionalidad de los datos tabulados que estoy tratando de usar. Construyo un ejemplo de lo que me gustaría que fuera el resultado y lo agregué a mi publicación original.
¡Gracias!
Re: Desglose de tabla de una sola celdaCreo que se cruzó nuestro post. Entonces, después de usar Texto en columnas, ahora use Tables Transpose y puede girar la tabla y obtener los datos en columnas.
Re: Desglose de tabla de una sola celdapuede tomar el valor como este, 11.000,0.00,0.050,0.001,PASS,11.047,-156, esa columna y usar Columnas > Utilidades > Texto a columnas para crear columnas separadas para las diferentes cosas en esa columna.
Utilice los delimitadores, -
y eso te dará columnas como esta:
11.000 0,00 0,050 0,001 APROBADO .. etc..
si desea dividirlo más o de manera diferente, puede usar un delimitador o espacio diferente.
Con suerte, esto es lo que estabas tratando de hacer.