trouver des valeurs et classerBonjour,
J'ai le problème que j'ai besoin de catégoriser certaines données. La sélection des valeurs à classer serait beaucoup plus facile s'il y avait un processus automatisé. Le problème est tel: Tableau avec 3 colonnes (1 catégorie, 2 mesures de profondeur, 3 nombre de points de données).
1) Je souhaite obtenir les valeurs inférieures à 0,5 (voir la colonne 2 du fichier exemple) pour chaque lac, respectivement. Cela signifie que 0,5 ne devrait pas être inclus dans l'évaluation pour la sélection.
2) De plus, j'aimerais trier les valeurs trouvées dans la colonne 2 après celles contenant le plus de points de données (N, colonne 3) en sélectionnant les trois valeurs les plus profondes trouvées contenant le plus de données, respectivement pour chaque nom de la colonne 1.
3) Pour les classer, j'aimerais créer une nouvelle colonne et ajouter un 1/2/3 pour celles contenant le plus de données, à celles contenant le moins de données de ces trois. Si deux profondeurs jugées égales en nombre de points de données, la plus profonde doit être classée dans la catégorie 1 ou 2.
Voir le fichier exemple pour une meilleure compréhension :-).
Merci d'avance pour toute solution, si cela est possible avec jsl.
Re: trouver des valeurs et catégorisersalut @Pacco ,
Utilisez-vous JMP 12 (ou une version antérieure) par hasard? Col Rank () modifié dans JMP 13 pour autoriser les arguments supplémentaires utilisés par Xan.
De la docs:
JMP 12:
Col Rank(column)
JMP 13:
Col Rank(column, <BYVAR>, <<TIE></TIE></BYVAR>
Re: trouver des valeurs et catégoriserLorsque je lance le script, puis crée un sous-ensemble des lignes sélectionnées avec
dt << Subset( Copy formula( 0 ), Selected Rows( 1 ), Selected columns only( 0 ) )
Je reçois
Toutes les colonnes sont en effet classées, mais dans les valeurs uniques de Stationsnamn et isBelow05. Cela est contrôlé par les deuxième et troisième arguments du Col Rank (). Si vous souhaitez que les stations soient classées ensemble, supprimez-les par variable dans les arguments Col Rank ().
Re: trouver des valeurs et catégoriserPuis-je demander à quoi ressemble le résultat? Le mien classe la colonne entière. Cependant, je cherche à classer chaque section (chaque lot du même nom, voir la colonne Stationsnamn).
Re: trouver des valeurs et catégoriserMerci pour les idées, la sélection et la désélection de "suppress eval" ont aidé. Cependant, l'attente 5 n'a rien changé!

Re: trouver des valeurs et catégoriserJe ne sais pas ce qui cause votre problème. Lorsque j'ouvre le tableau de données que vous avez fourni dans votre dernière réponse, je vois le problème. J'ai pu corriger le problème en cliquant à l'aide du bouton droit de la souris sur l'en-tête de la colonne et en sélectionnant Informations sur la colonne. Il ouvre la fenêtre Informations sur la colonne. Sélectionnez "Supprimer Eval" comme indiqué ci-dessous, puis cliquez sur le bouton "Appliquer". Désélectionnez "Supprimer l'évaluation" puis cliquez à nouveau sur le bouton "Appliquer" pour voir si les valeurs de la colonne ont été corrigées.

L'autre chose que j'aimerais que vous essayiez, est de supprimer les colonnes "isbelow05" et "rank" et d'exécuter le script suivant.
dt = Current Data Table();
dt << New Column( "isbelow05", formula( :Profildjup <= 0.5 ) );
wait(.5);
dt << New Column( "rank", formula( Col Rank( -(:n rows + :Profildjup), :isbelow05, :Stationsnamn ) ) );
dt << select where( :isbelow05 & :rank <= 3 );
Si cela fonctionne, le problème peut être que votre formule "isbelow05" n'est pas complétée avant la génération de la colonne "rank", ce qui cause des problèmes. le
wait(.5);
donne le temps de terminer la création de la colonne "isbelow05"
Re: trouver des valeurs et catégoriserMmh, c'est étrange. Je viens tout juste de télécharger le fichier exemple à partir d’ici (la différence était que j’avais fait une sélection avec une colonne supplémentaire). Cependant, même le fichier exemple que j’ai téléchargé me montre la même erreur que celle que j’avais envoyée auparavant. Cependant, il indique maintenant les valeurs de surface avec un un dans la colonne inférieure à 0,5. (voir fichier ci-joint)
Je pourrais aussi simplifier la question. Il suffit ensuite de sélectionner et de classer les valeurs en fonction de leur rang dans les nombres les plus élevés pour chaque section du nom du lac.
Re: trouver des valeurs et catégoriserLe script inclus dans Xan fonctionne parfaitement avec les exemples de données que vous avez joints. Quelle est la différence entre vos données réelles et la table de données Example que vous avez jointe?
Re: trouver des valeurs et catégoriserBonjour Greg,
merci pour la réponse et le script. Malheureusement, cela ne fonctionne pas avec mes données. Les résultats sont deux nouvelles colonnes sans données dans la première colonne et une seule entrée dans la première cellule de la colonne 2 ("4,20533670002011e-315").
Une idée de ce qui aurait pu mal tourner?
Re: trouver des valeurs et catégoriserQuelque chose comme ça devrait aider si je comprends bien.
dt = Current Data Table();
dt << New Column( "isbelow05", formula( :Profildjup <= 0.5 ) );
dt << New Column( "rank", formula( Col Rank( -(:n rows + :Profildjup), :isbelow05, :Stationsnamn ) ) );
dt << select where( :isbelow05 & :rank <= 3 );
Si par profondeur "en dessous" vous voulez dire numériquement supérieur, changez le "<= 0.5" en "> = 0.5". Merci d'avoir inclus le fichier d'exemple.