¿Cómo puedo analizar una cadena en 1 columna usando jsl?Quiero usar jsl para dividir datos en la columna "resultado" con el delimitador "|" a la nueva columna "PIN" y "valor". Por favor ayuda, gracias de antemano.
Por favor consulte mi archivo adjunto

nueva mesa

Automatización y secuencias de comandosRe: ¿Cómo puedo analizar una cadena en 1 columna usando jsl?- Replace the Stack code with this
// Get all of the column names
resultList = dt << get column names();
// Only the columns Result 2 thru Result N are to be
// stacked, so remove the first 3 columns from the list
remove from(resultList,1,3);
// Use a multiple series stack to stack the data
dtStack = dt << Stack(
columns( resultList ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
"Non-stacked columns"n( Keep( :Unit#, :Result 1 ) ),
Number of Series( 2 ),
Output Table( "Untitled 20.jmp" )
);
- Tómese el tiempo para leer la Guía de secuencias de comandos disponible en la Biblioteca de documentación de JMP disponible en el menú desplegable Ayuda.
Re: ¿Cómo puedo analizar una cadena en 1 columna usando jsl?// Use a multiple series stack to stack the data
dtStack = dt << Stack(
columns( :Result 2, :Result 3, :Result 4, :Result 5, :Result 6, :Result 7 ),
En el paso anterior, si mi conjunto de datos devuelve tantos resultados hasta el resultado 120, y su variación puede ser superior a 120 resultados, ¿tenemos alguna forma de codificar el script jsl para apilar los datos, Jim?
Re: ¿Cómo puedo analizar una cadena en 1 columna usando jsl?Muchas gracias Jim, es muy buena solución.
Re: ¿Cómo puedo analizar una cadena en 1 columna usando jsl?muchas gracias
Re: ¿Cómo puedo analizar una cadena en 1 columna usando jsl?Dada la tabla de datos

Este JSL producirá la nueva tabla requerida.
names default to here(1);
// Create a handle to point to the data table in question
dt = current data table();
// Convert the Result column into several columns
// Text to columns
dt << Text to Columns(
columns( :Result ),
Delimiters( "|" )
);
// Use a multiple series stack to stack the data
dtStack = dt << Stack(
columns( :Result 2, :Result 3, :Result 4, :Result 5, :Result 6, :Result 7 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
"Non-stacked columns"n( Keep( :Unit#, :Result 1 ) ),
Number of Series( 2 ),
Output Table( "Untitled 20.jmp" )
);
// Delete unneeded columns
dtStack << delete columns(:Label,:Label2);
// Rename the stacked columns
dtStack:Result 1 << set name ("Number Of Tests");
dtStack:Data << set name("PIN");
dtStack:Data2 << set name("Value");

Todo el JSL anterior se creó ejecutando los cambios de texto a columnas, pila y nombre de columna, etc. de forma interactiva, y luego yendo al registro de JMP y cortando y pegando el JSL que JMP produjo en una ventana de script. Confesaré que limpié un poco el JSL cortado y pegado para que se vea mejor.
Re: ¿Cómo puedo analizar una cadena en 1 columna usando jsl?Dividir una columna de una tabla de datos en varias columnas (jmp.com)
Selecciona tu columna

ir al menú de columnas

configura tu delimitador

Presiona OK y tendrás tu resultado.

copie el script del registro/flujo de trabajo mejorado y modifíquelo según sea necesario
// Text to columns
Data Table("Sheet1") << Text to Columns(columns(:Result), Delimiters("|"));