¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Según los datos de la columna "peso" del documento "Arritmia" 、 y el archivo "criterio" del archivo adjunto, se obtiene la columna "nivel".
Luego, de acuerdo con la columna "nivel" y la columna "clase", los datos de la columna "V3 QRSTA" se clasifican de acuerdo con las siguientes reglas:
La base de la fila es "nivel", la base de la columna es "clase" y el valor positivo y el valor negativo de la columna "V3 QRSTA" se clasifican y resumen respectivamente.

Las operaciones anteriores se pueden completar fácilmente con Excel y sus funciones, pero la velocidad es lenta cuando el volumen de datos es grande.
Si la cantidad de datos es grande, cómo utilizar JMP JSL debería completarse más rápidamente. ¡Muchas gracias!
Este problema es bastante complicado. Hice varias fotos y subí 2 archivos.
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?No es la única manera, pero es una de las formas en que puedes hacerlo es JMP.Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?OK veo. Esa es la única manera.
¡Gracias Jim!

Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Cree una nueva columna de caracteres en su tabla de datos. Utilice una fórmula para establecer el valor de la columna en "+" si la columna V3 QRSTA es mayor que 0 y en "-" si es inferior a cero. Luego haga sus Tablas ==> Resumen y agregue la nueva columna como una variable de grupo adicional, manteniendo Clase como su Subgrupo y Nivel como columna de Peso.Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?¡Gracias!
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Ahora quiero resumir el valor positivo y el valor negativo de la columna "V3 QRSTA" respectivamente agregando la columna de "nivel" de peso y la columna de "clase".
¿Cómo hacer esto con JSL?

He subido los datos relacionados con el cálculo en el archivo adjunto. ¡Gracias!
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?¡Gracias Jim!
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Ejecuté mi ejemplo con 1 millón de filas y me llevó 17 segundos.
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Estudié el código de Jim y comprendí que fue mediante la clasificación que se realizó este rápido cálculo.
¡Gracias Jim!
Si los datos alcanzan los diez millones de filas, llevará algún tiempo esperar.
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?A continuación se muestra un ejemplo de una forma de realizar el procesamiento para establecer la calificación de cada fila de datos sin procesar.Lo tengo configurado para tener una tabla de datos de ejemplo de 50,000, que en mi computadora con Windows de 4 años toma aproximadamente 2 segundos para crear los datos de ejemplo y luego establecer la calificación para cada fila.
Names Default To Here( 1 );
// Create a sample standards table
dtStandard = New Table( "Standards",
Add Rows( 200 ),
New Column( "standards", formula( Random Integer( 93500, 1000000 ) ) )
);
dtStandard << run formulas;
dtStandard:standards << delete property( "formula" );
dtStandard << sort( by( :standards ), order( ascending ), replace table( 1 ) );
dtStandard << rerun formulas;
dtStandard << New Column( "grades", formula( Row() ) );
dtStandard:grades << delete property( "formula" );
// Create an example table
dt = New Table( "Example",
Add Rows( 50000 ),
New Column( "Raw Data", formula( Random Integer( 93500, 1000000 ) ) )
);
dt << run formulas;
dt:Raw Data << delete property( "formula" );
// Make sure the standards table has the same range as the example table
If( dtStandard:standards[1] > Col Min( dt:raw data ),
dtStandard:standards[1] = Col Min( dt:raw data )
);
If( dtStandard:standards[200] < Col Max( dt:raw data ),
dtStandard:standards[200] = Col Max( dt:raw data )
);
// Set the standard
// The code below is the actual code that performs the setting of the grade
// Create a column to hold the original row positions in the data table
dt << New Column( "OrigRow", formula( Row() ) );
dt:OrigRow << delete property( "formula" );
// Add the new grades column to the Example data
dt << New Column( "grade" );
// Sort the data in order of the raw data
dt << sort( by( :Raw Data ), order( ascending ), replace table( 1 ) );
For( i = 1, i <= N Rows( dt ), i++,
If( i == 1,
lkupRow = Max( dtStandard << get rows where( dtStandard:standards <= dt:Raw Data[i] ) )
);
While( dtStandard:standards[lkupRow] < dt:Raw Data[i], lkupRow = lkupRow + 1 );
dt:grade[i] = dtStandard:grades[lkupRow];
);
// Sort the data back to the original order
dt << sort( by( :OrigRow ), order( ascending ), replace table( 1 ) );
// Delete the origrow column
dt << delete columns( "OrigRow" );
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Los intervalos estándar son irregulares.Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?¡Gracias Jim!
Vea cómo se hace este ejemplo con JSL.
<=Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Gracias por tu tiempo.Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?JMP tiene muchos métodos y funciones que se pueden utilizar para clasificación y/o agrupación.La estructura If() que ilustré sería muy rápida y fácil de implementar para las clasificaciones de peso que especificó.Si pudiera dar más detalles sobre una clasificación que tendría más de 100 niveles, estoy seguro de que hay métodos disponibles.
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Si tuviera la clasificación en una tabla como se muestra arriba, un script podría crear fácilmente la expresión para la función If() necesaria. O podría utilizar el método de búsqueda en dicha tabla.
¿Más de 100 clases? ¿Serían significativos o útiles? En este punto es posible que desee utilizar simplemente la variable continua original.
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?¡Gracias Jim!
pero si esta clasificación de grado llega a más de 100, dicho código de método de clasificación es más engorroso.Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Esto se puede manejar fácilmente en una fórmula JMP.
If(weight<=30, 1
weight <= 40, 2,
weight <= 50, 3,
etc.
)
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Vea la captura de pantalla estándar: Para la operación de este paso, solo puedo usar la forma "IF". Excel tiene varias funciones que hacen esto. ¿Cómo hace JSL esto rápidamente? ¡Muchas gracias!
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Parece que hay muchos pasos en mi proyecto, por lo que necesito completarlo en varios pasos:
Resuelve el primer paso sobre todo: cómo dividir la columna "peso" por el "criterio" en algunos grados accesorios.

Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?Cuando lo hice yo mismo, agregué tres columnas al archivo Arrhythmia.jmp: "nivel", "positivo", "negativo".
Sé que es estúpido, pero es la única manera en que puedo manejarlo. ¡Muchas gracias!
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?
Re: ¿Cómo uso JSL para categorizar valores positivos y negativos en la misma columna?dt = Abrir( "$SAMPLE_DATA/Arrhythmia.jmp" );