JSL Crear nueva tabla de resumen con valores máximos de columnas variablesHola,
He disfrutado leyendo y encontrando soluciones en estas páginas de discusión desde hace un tiempo, pero ahora he estado buscando a tientas para resolver esto.
Tengo una tabla de datos que da un número variable de columnas, generadas automáticamente por la máquina, donde las primeras 14 columnas son siempre la misma información de identificación. Las otras columnas, de la 15 en adelante, son datos Numéricos Continuos donde los nombres de las columnas siempre variarán.
El problema es que estoy tratando de automatizar la creación de una tabla de resumen que agrupará los datos por su información de identificación y también tendrá una columna de datos máximos para cada columna de datos.
Con un número variable de columnas de datos y nombres de columnas variables, ¿es posible iterar a través de cada columna? ¿Como un bucle for para obtener todos los valores máximos en la tabla de resumen? Estoy limitado por no poder nombrar todas las columnas b/c de los diferentes nombres de columna en cada extracción, pero es seguro decir que cada columna después de la columna 14 necesitará los valores máximos encontrados.
Este es el script JSL que he estado tratando de editar, pero llegué a un callejón sin salida al generar las columnas Max.
sumdt = table << Summary(
Group(:NAME,:ID),
(Max(Column(table, 15:154)), // having issue on this line
Output Table Name("Summary Max Values")
);
¡Gracias por cualquier aporte a mi problema!
secuencias de comandosRe: JSL Crear nueva tabla de resumen con valores máximos de columnas variablesBajo la última versión de JMP, el código funciona bien. ¡Gracias!
Re: JSL Crear nueva tabla de resumen con valores máximos de columnas variablesHola, gracias por tu código. Aquí descubrí que solo puedo obtener Max de la primera columna numérica, altura. Consulte el archivo adjunto. Supongo que Max solo funciona con el primer valor de la lista. ¿Puedes ayudarme a saber por qué?
Re: JSL Crear nueva tabla de resumen con valores máximos de columnas variablesMuchas gracias @txnelson
Eso es perfecto. Como sé qué columnas quiero eliminar, la función Remove from() es justo lo que necesitaba.
Aquí está básicamente el código que hace exactamente lo que necesito:
Names default to here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colNamesList = dt << get column names( continuous, string );
Remove From(colNamesList, 1,2 ); //removes first two columns that I don't want evaluated
sumdt = dt << summary(
Group( :Sex, :Age ),
max( colNamesList ),
Output Table( "Summary Max Values"),
Link to Original Data Table( 0 )
);
Re: JSL Crear nueva tabla de resumen con valores máximos de columnas variablesDespués de crear colNamesList, puede usar la función Remove From() para eliminar filas específicas de la lista y luego, una vez que la lista se reduce a solo las columnas que desea, puede usarla para generar la tabla de resumen.
Consulte la entrada del índice de secuencias de comandos para ver la definición y el ejemplo de la función Eliminar de().
Re: JSL Crear nueva tabla de resumen con valores máximos de columnas variablesGracias @txnelson ,
eso resolvió parcialmente mi problema.
Mi tabla de datos original tiene columnas de fecha en las que no quiero que se analicen los valores máximos, básicamente me encuentro con el problema de que no quiero calcular los valores máximos de las primeras 14 columnas, independientemente de su tipo de datos.
¿Hay alguna manera de ignorar las primeras 14 columnas o sería más fácil crear una nueva tabla que elimine las columnas no deseadas antes de pasarlas a una tabla de resumen?
Gracias,
Gloria
Re: JSL Crear nueva tabla de resumen con valores máximos de columnas variablesAquí hay un ejemplo de cómo hacer lo que quiere con la tabla de datos de muestra de Big Class.
Names default to here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colNamesList = dt << get column names( continuous, string );
sumdt = dt << summary(
Group( :Sex, :Age ),
max( colNamesList ),
Output Table( "Summary Max Values"),
Link to Original Data Table( 0 )
);
