Apilar columnas con varios nombres¡Hola a todos!
Digamos que tengo una tabla de datos que se ve así:
A,B1,B2,C1,C2,D
1,2,3,4,5,16
6,7,8,9,10,16
11,12,13,14,15,16
Quiero apilarlos para que la nueva tabla se vea así:
A B C
1,2,4
1,3,5
6,7,9
6,8,10
11,12,14
11,13,15
Tengo tres listas: una que contiene columnas que deben conservarse: list_to_keep= {A},list_to_stack_before= {B1,C1} y list_to_stack_after = {B2,C2}.
Primero escribí un script para crear una nueva lista con los nuevos nombres de columnas:
nuevos_columnas_nombres = {};
str = char(list_to_stack_before);
noticiastr = sustituto(cadena", "", "_be_sam","");
new_column_names = parse(newstr);
Luego intenté hacer un bucle en la función de pila, pero siempre agrega más filas. No puedo usar la función de pila normal porque no me permite usar varios nombres en el argumento de la columna de datos apilados. ¿Como puedó resolver esté problema? Muchas gracias soy muy nuevo en jmp.
Automatización y secuencias de comandosRe: Apilar columnas con varios nombresHola nuevo miembro
Si bien se pueden realizar secuencias de comandos, tal vez vea hasta dónde puede llegar antes de codificar (consejo: en JMP suele estar bastante lejos).
El comando Menú Tablas, Apilar llegará hasta allí. La vista previa en tiempo real es realmente útil.

Después de ejecutar este comando, cambie el nombre de las columnas "Datos" a A y B, elimine la columna de etiqueta.
Si desea crear un script, después de ejecutar el comando de pila, el triángulo verde "Fuente" en el panel superior izquierdo volverá a ejecutar la acción. Haga clic derecho/edite para ver la sintaxis del script.
Para obtener la sintaxis del script, use el generador de flujo de trabajo para registrar los pasos, luego el triángulo rojo> guárdelo en la ventana del script.
Re: Apilar columnas con varios nombresHola Greg, ¡muchas gracias por tu respuesta!
Estoy familiarizado con la interfaz de pila y también utilicé el generador de flujo de trabajo para apilar un script. El problema con el cambio de nombre es que no tengo 3 columnas que quiero apilar, sino más bien 40 y espero que crezcan con nuevas medidas.
Me di cuenta de que probablemente podría escribir un script para cambiar el nombre de las columnas usando una lista, pero esto parece una solución no tan buena y propensa a errores en el orden. Esperaba que hubiera un método más sencillo. Es muy lamentable que la opción "nuevos nombres de columnas" no permita más de un argumento.
Mejor
Re: Apilar columnas con varios nombres¿Estás eliminando la columna D? En sus tablas de datos reales, ¿cómo decide qué columnas eliminar? ¿Cuál es la convención de nomenclatura para las columnas (antes y después de la pila)? Esto no debería ser demasiado difícil de automatizar mediante JSL.
*editar*
Además, ¿el número de múltiplos es siempre el mismo? Por ejemplo, si hay B1 y B2, ¿siempre habrá C1 y C2, o también podría haber un C3? Si es así, ¿cómo debería manejarse eso?
Re: Apilar columnas con varios nombresDE ACUERDO-
Qué bueno que puedas escribir un guión. Gracias por aclarar que buscas algo escalable para evitar cambiar el nombre de muchas columnas.
Primero, como comentario aparte/tangente : como consejo y truco para la manipulación de nombres de columnas en modo manual, pero a escala: esto es rápido y potente ( pero debe hacerse con cuidado ).
- en el Panel de columnas, seleccione todas las columnas: "copiar" (coloca el texto en el búfer de copia)
- En otra tabla de datos (o en una hoja de cálculo o programa de procesamiento de textos), "Pegar": la lista de columnas se crea como texto.
Manipúlelo como desee (escriba el texto de edición en su lugar, cree una columna de fórmula para agregar prefijo/sufijo... lo que sea)...
- "Copiar" la lista editada de nombres de nuevas columnas de texto
- Volver a la tabla original. Borre la selección de columnas, luego vuelva a seleccionar la lista de columnas en el panel de columnas. "Pegar" para sobrescribir los nombres de las columnas editadas
Volvamos al método de operaciones de tabla propuesto anteriormente.
Si el carácter más bajo siempre será 1/2 (o al menos indicará la familia de columnas que deben apilarse), esto se puede hacer en dos operaciones de tabla y una fórmula. Estos pasos se pueden programar o capturar en el generador de flujo de trabajo si las acciones deben ser repetibles.

Agregue una columna de fórmula para recortar "Etiqueta", excluyendo el carácter más bajo

Tabla de datos "divididos" por etiqueta recortada ....

Re: Apilar columnas con varios nombres¡Guau, buen vínculo entre la pila de series múltiples y la pila + división!