¿Cómo puedo dividir el texto de una columna en varias columnas?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />A veces tengo un conjunto de datos con información en una columna que me gustaría dividir en varias columnas. Por ejemplo, en la imagen 1 a continuación, tengo cuatro identificadores agrupados en una columna que me gustaría dividir en cuatro columnas. Quiero que el número de lote (11), el identificador de texto (DAT), el número de muestra (001,002, etc.) y el tipo de archivo (.tif) se divida en columnas individuales (como se muestra en la imagen 2). ¿Cuál es la mejor manera de hacer esto en el editor de fórmulas o usando JSL? Adjunto un archivo de datos de muestra.
Lo que tengo:
Imagen 1

Lo que quiero tener:
Imagen 2

Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?¿Puede proporcionarnos algunos datos de ejemplo con aspectos de antes y después de dividir y apilar?
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Hola Jeff,
Esta función de "dividir" y "apilar" en JMP es realmente buena. Supongo que no conoces el equivalente de SQL o una forma de hacerlo en SQL. Si ese no es un consejo que das, está bien. Solo sálvame mirando los tableros SQL.
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Mire la función "Texto a columnas" y la función Word() para lograr lo que está preguntando.
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Hola,
Estoy trabajando en una extensión de la función de prueba a columnas. Tengo una cadena ACE_100_bb_29_icfg2 en una columna denominada código de artículo. ¿Hay alguna manera de separar este texto por _ y luego tener solo los primeros 3 caracteres (ABC) en el código del elemento de la columna?
La forma en que lo estoy haciendo ahora es eliminar todas las demás columnas producidas por esta función, que es el código de artículo 1, 2 y hasta ahora, y cambiar el nombre de la columna con ABC como código de artículo. Me preguntaba si existe una forma eficaz de hacer esto.
Gracias
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Jim respondió a tu pregunta, pero no necesitas un guión.
- Seleccione todas las columnas que desea cambiar.
- Seleccionar columnas > Estandarizar atributos .
- Hacer clic Atributos y seleccione Tipo de datos .
- Hacer clic Atributos y seleccione Tipo de modelado .
- Cambie ambos atributos de la forma que desee.
- Hacer clic DE ACUERDO .
Las secuencias de comandos son excelentes, pero JMP está optimizado para la interacción.
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Su código compacto para configurar el tipo de datos y el tipo de modelado para todas las columnas sería
dt = current data table();
for( i = 1, i <= NCols( dt ), i++,
column( dt, i ) << data type( "numeric" ) << modeling type( "continuous" );
);
Con respecto a su transposición, debería poder obtener lo que desea utilizando Stack Platform
Tablas ==> Pila
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Hola de nuevo, muchas gracias. Funciona y mis datos se dividen. Ahora hay 138 columnas con los nombres SPDATA 1 - SPDATA 138.
Sé que está un poco fuera del tema del hilo y tal vez sea algo que debería poder hacer, pero:
¿Cómo puedo en una declaración JSL compacta establecer todas las propiedades de las columnas en numéricas y continuas?
Y en segundo lugar, ¿cómo puedo crear una tabla de datos transformados, donde los datos del espectro son UNA columna con múltiplos de 138 filas de acuerdo con algunos datos categoriales también disponibles (valores de fecha y hora que tienen el mismo valor para los 138 puntos de datos)?
Sinceramente Poul RS
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Aquí está el ejemplo de la documentación del complemento.Asegúrese de haber instalado la versión 3 del complemento y luego ejecute este ejemplo.
bc_party = Open( "$SAMPLE_DATA\Consumer Preferences.jmp" );
com.jmp.jperk:texttocolumns( Column( bc_party , "floss delimited"), ",", bc_party );
Si funciona, entonces usando este código es como lo incorporas a tu JSL.
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Hola, estoy ejecutando JMP 13 y tengo instalado el complemento Texto a columnas y puedo usarlo desde los menús.
Ahora, tengo una columna de caracteres de la tabla de datos que representa datos del espectro de un espectrofotómetro. Hay en total 138 subcadenas separadas por comas. Quiero codificar en JSL, usando el complemento, la generación de 138 columnas numéricas, cada una con un valor. (Dado que los datos provienen de una matriz de diodos, la separación de longitud de onda es constante, por lo que no la tengo en los datos y, por lo tanto, no necesito convertirla).
He leído algunos de los ejemplos sobre cómo hacer esto, pero no logro obtener la sintaxis correcta.
Se agradecería un poco de ayuda: ¿Cuál es la sintaxis para generar 138 columnas a partir de una columna específica utilizando el complemento?
gracias de antemano
Paul RS
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Gracias Ian. Estoy usando JMP 13.1.0 y esa página está en blanco.
Volviendo a la pregunta más reciente, aquí se explica cómo llamar texto a columnas en JSL:
dt = New Table( "Text2Col Example", Add Rows( 4 ),
New Column( "Col1", Character, "Nominal",
Set Values(
{"11 DAT 001.tif", "11 DAT 002.tif", "11 DAT 003.tif", "11 DAT 004.tif"}
)
),
New Column( "Col2", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [159.4308, 229.5031, 164.3414, 162.0241] )
)
);
dt << text to columns(delimiter(" "), columns(:Col1));Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?En mi compilación de 13.1, veo:


Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?La documentación para col << texto a columnas es un trozo vacío en el índice de secuencias de comandos. He probado varias combinaciones pero no consigo que funcione. ¿Alguien de JMP puede indicarnos la sintaxis adecuada?
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?He publicado recientemente Texto a columnas, versión 3 que agrega soporte para llamar Texto a Columnas desde JSL.
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Names Default To Here( 1 );
dt = New Table( "sample",
New Column( "column 0", character, values( {"11 DAT001.tif", "11 DAT002.tif", "11 DAT003.tif", "11 DAT004.tif"} ) )
);
// Pause so you can see it working
Wait( 2 );
// add some as an example of the elements using a formula
dt << New Column( "Column 1", formula( Num( Word( 1, :column 0 ) ) ) );
dt << New Column( "Column 2", character, formula( Substr( Word( 2, :column 0 ), 1, 3 ) ) );
dt << New Column( "Column 3", character, formula( Substr( Word( 2, :column 0 ), 6, 1 ) ) );
// Now do the last one, using JSL code
dt << New Column( "Column 4", character );
For( i = 1, i <= N Rows( dt ), i++,
:Column 4[i] = Word( -1, :Column 0[i],".");
);Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?¿Cómo se puede escribir esto en código/JSL?
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Perfecto, esto es exactamente lo que estaba buscando, gracias Jeff.
Re: ¿Cómo puedo dividir el texto de una columna en varias columnas?Si está utilizando JMP 12 o posterior, puede utilizar Cols -> Utilidades -> Texto a columnas .

Si está utilizando JMP 11 o una versión anterior, puede obtener el complemento, Texto a columnas, versión 2 , que hace lo mismo que la función incorporada ahora.
Si desea hacer esto a mano, ya sea con JSL o el Editor de fórmulas, encontrará el Palabra() función útil. Confía en mí.
