Comment analyser l'ordre numérique des valeurs répétitives en lignes?Salut,
Je suis l'une des rares personnes en Suède à utiliser JMP alors que la plupart de mes collègues universitaires utilisent SPSS. Cependant, j'adore JMP et j'ai publié 70 articles en chirurgie, ce qui fonctionne bien pour moi. Je suis professeur agrégé et je me décrirais comme un amateur expérimenté de JMP capable de programmer, mais il y a un problème qui me pose problème. J'ai déjà posté cette question mais je ne comprenais pas exactement les réponses sur le forum. Le problème est le suivant:
J'ai un fichier appelé Résultats .
Dans ce fichier, j'ai une colonne de 5700 numéros qui sont triés dans l'ordre comme:
Nr
3456
3666
3687
3687
3687
5444
5444
5445
J'apprécierais des informations sur la façon dont je devrais écrire un script ou si je devais écrire quoi que ce soit dans une colonne supplémentaire afin d'obtenir l'ordre des apparences répétitives des nombres. La raison en est que je ne suis intéressé que par le premier numéro. et si je peux obtenir la commande, je pourrais créer un fichier séparé contenant uniquement la commande 1.
comme
Nr de commande
3456 1
3666 1
3687 1
3687 2
3687 3
5444 1
5444 2
5445 1
Étant donné que je suis un amateur, je vous serais reconnaissant de bien vouloir écrire la réponse de manière simple.
Cordialement
Lars Enochsson
professeur agrégé
Université d'Umeå
Suède
Re: Comment analyser l'ordre numérique des valeurs répétitives en lignes?Merci. Excellente aide. Cela a résolu le problème.Re: Comment analyser l'ordre numérique des valeurs répétitives en lignes?Sucré! ColRank () avec une variable by n'était pas disponible avant JMP 13.
En tant que FYI, voici un script pour vérifier les performances. S'il y avait au moins 1 000 000 lignes, je trierais probablement et utiliserais des décalages.
Names Default to Here(1);
dt = New Table("Test It", add rows(6000),
New Column("Nr", numeric, continuous,<<SET each="" value=""></SET><BR /> Pour 6000 lignes, utilisez Col Rank () = 3.13 * avec des retards
tl - t0 = 18836;
t3 - t2 = 1863;
t5 - t4 = 4161;
Pour 1 000 000 de lignes, utilisez Col Rank () = 2,45 * en utilisant des décalages
tl - t0 = 1521679;
t3 - t2 = 694813;
t5 - t4 = 621142;
* /
Re: Comment analyser l'ordre numérique des valeurs répétitives en lignes?Essayez une formule de colonne avec le Col Rank () Fonction avec une variable by Il peut nécessiter JMP version 13 ou ultérieure, indéterminé lors de la première introduction de la prise en charge des variables by dans ColRank.
Essayez le script ci-dessous. Cela devrait donner le même résultat que la solution précédente. Cependant, cela ne dépend pas du tri.
Current Data Table() << New Column("Order", Formula(Col Rank(:Nr, :Nr)));
(Encore un autre utilisateur JMP en Suède)
Re: Comment analyser l'ordre numérique des valeurs répétitives en lignes?Comme la colonne Nr est dans l’ordre trié, elle peut être réalisée avec une formule de colonne. Avant de présenter la formule, consultez Menu principal> Aide> Index de script> Fonctions> Ligne ou recherchez Lag. J'ai créé une colonne appelée Count et ajouté cette formule. Par défaut, la première ligne compte 1. La deuxième condition: Nr == Lag (: Nr, 1) est la condition; si la ligne en cours est égale à la ligne précédente, prenez le compte précédent, Lag (: Count, 1) et incrémentez-le. Sinon, le compte est 1.
If(
Row() == 1, 1,
:Nr == Lag( :Nr, 1 ), Lag( :Count, 1 ) + 1,
1
)
Remarque JMP Lag fonctionne aussi bien sur le texte que sur les chiffres. Cependant, si j’avais une colonne de texte, je recommanderais de modifier la fonction
If(
Row() == 1, 1,
Trim( Lowercase( :txtCol ) ) == Trim( Lowercase (Lag( :txtCol, 1 ) ) ) , Lag( :Count, 1 ) + 1,
1
)
J'espère que cela pourra aider.