Comment utiliser JSL pour classer les valeurs positives et négatives dans la même colonne ?D'après les données de la colonne "poids" du document "Arythmie" 、et du fichier "critère" en pièce jointe, la colonne "niveau" est obtenue.
Ensuite, selon la colonne « niveau » et la colonne « classe », les données de la colonne « V3 QRSTA » sont classées selon les règles suivantes :
La base des lignes est "niveau", la base des colonnes est "classe", et la valeur positive et la valeur négative de la colonne "V3 QRSTA" sont classées et résumées respectivement.

Les opérations ci-dessus peuvent être facilement réalisées avec Excel et ses fonctions, mais la vitesse est lente lorsque le volume de données est important.
Si la quantité de données est importante, l'utilisation de JMP JSL devrait être complétée plus rapidement. Merci beaucoup !
Ce problème est assez compliqué. J'ai fait plusieurs photos et téléchargé 2 fichiers.
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Ce n'est pas le seul moyen, mais l'un des moyens de le faire est JMP.Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?OK je vois. C'est le seul moyen.
Merci Jim!

Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Créez une nouvelle colonne de caractères dans votre table de données. Utilisez une formule pour définir la valeur de la colonne sur un "+" si la colonne V3 QRSTA est supérieure à 0 et un "-" si elle est inférieure à zéro. Ensuite, faites vos Tableaux ==> Résumé et ajoutez la nouvelle colonne en tant que variable de groupe supplémentaire, en gardant la classe comme sous-groupe et le niveau comme colonne de poids.Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Merci!
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Maintenant, je veux résumer la valeur positive et la valeur négative de la colonne "V3 QRSTA" respectivement en ajoutant la colonne de poids "niveau" et la colonne "classe".
Comment faire cela avec JSL ?

J'ai téléchargé les données liées au calcul dans la pièce jointe. Merci !
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Merci Jim!
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?J'ai exécuté mon exemple avec 1 million de lignes et cela a pris 17 secondes.
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?J'ai étudié le code de Jim et j'ai compris que c'était grâce au tri que l'on réalisait ce calcul rapide.
Merci Jim!
Si les données atteignent dix millions de lignes, l'attente prendra un certain temps.
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Voici un exemple d'une façon d'effectuer le traitement pour définir la note de chaque ligne de données brutes.Je l'ai configuré pour avoir un exemple de table de données de 50 000, ce qui, sur le PC de mon Windows de 4 ans, prend environ 2 secondes pour créer les exemples de données, puis pour définir la note de chaque ligne.
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 : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Les intervalles standards sont irréguliers.Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Merci Jim!
Voyez comment cet exemple est réalisé avec JSL.
<=Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Merci pour votre temps.Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?JMP dispose de nombreuses méthodes et fonctions qui peuvent être utilisées pour la classification et/ou le regroupement.La structure If() que j'ai illustrée serait très rapide et facile à mettre en œuvre pour les classifications de poids que vous avez spécifiées.Si vous pouviez donner plus de détails sur une classification qui comporterait plus de 100 niveaux, je suis sûr qu'il existe des méthodes disponibles.
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Si vous aviez la classification dans un tableau comme indiqué ci-dessus, un script pourrait facilement créer l'expression pour la fonction If() nécessaire. Ou vous pouvez utiliser l'approche de recherche dans un tel tableau.
Plus de 100 cours ? Seraient-ils significatifs ou utiles ? À ce stade, vous souhaiterez peut-être simplement utiliser la variable continue d'origine.
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Merci Jim!
mais si cette classification atteint plus de 100, ce code de méthode de classification est plus fastidieux.Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Cela peut être géré facilement dans une formule JMP
If(weight<=30, 1
weight <= 40, 2,
weight <= 50, 3,
etc.
)
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Voir capture d'écran pour le standard : Pour le fonctionnement de cette étape, je ne peux utiliser que la méthode "IF". Excel a plusieurs fonctions qui font cela. Comment JSL fait-il cela rapidement ? Merci beaucoup !
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Il semble que mon projet comporte de nombreuses étapes, je dois donc le réaliser en plusieurs étapes :
Résolvez avant tout la première étape : comment diviser la colonne "poids" par le "critère" en accessoire quelques notes.

Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?Quand je l'ai fait moi-même, j'ai ajouté trois colonnes au fichier Arythmia.jmp :"level"、"positive"、"negative".
Je sais que c'est stupide, mais c'est la seule façon pour moi de gérer ça. Merci beaucoup !
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?
Re : Comment utiliser JSL pour catégoriser les valeurs positives et négatives dans la même colonne ?dt = Open( "$SAMPLE_DATA/Arythmie.jmp" );