Wie kann man die numerische Reihenfolge der Wiederholungswerte in Zeilen analysieren?Hallo,
Ich bin eine der wenigen Personen in Schweden, die JMP verwendet, während die meisten meiner akademischen Kollegen SPSS verwenden. Ich liebe JMP und habe damit 70 Artikel in der Chirurgie veröffentlicht, so dass es für mich gut funktioniert. Ich bin Associate Professor und würde mich als fortgeschrittenen JMP-Amateur bezeichnen, der etwas programmieren kann, jedoch gibt es ein Problem, mit dem ich Probleme habe. Ich habe diese Frage schon einmal gestellt, aber die Antworten im Forum nicht genau verstanden. Das Problem ist wie folgt:
Ich habe eine Datei aufgerufen Ergebnisse .
In dieser Datei habe ich eine Spalte von 5700 Nummern die in der Reihenfolge sortiert sind:
Nr
3456
3666
3687
3687
3687
5444
5444
5445
Ich würde mich über Informationen darüber freuen, wie ich ein Skript schreiben sollte oder ob ich etwas in eine zusätzliche Spalte schreiben sollte, um die Reihenfolge der wiederholten Auftritte der Zahlen zu erhalten. Der Grund ist, dass mich nur die erste Nr. Interessiert. und wenn ich die Bestellung erhalten kann, kann ich eine separate Datei erstellen, die nur aus der Bestellung 1 besteht.
mögen
Nr. Bestellung
3456 1
3666 1
3687 1
3687 2
3687 3
5444 1
5444 2
5445 1
Da ich ein Amateur bin, würde ich mich freuen, wenn Sie die Antwort auf einfache Weise schreiben könnten.
Mit freundlichen Grüßen
Lars Enochsson
außerordentlicher Professor
Umeå Universität
Schweden
Re: Wie analysiert man die numerische Reihenfolge der Wiederholungswerte in Zeilen?Vielen Dank. Hervorragende Hilfe. Dies löste das Problem./LarsRe: Wie analysiert man die numerische Reihenfolge der Wiederholungswerte in Zeilen?Süss! ColRank () mit einer By-Variable war bis JMP 13 nicht verfügbar.
Als FYI ist hier ein Skript zur Überprüfung der Leistung. Wenn es 1.000.000 oder mehr Reihen gab, würde ich wahrscheinlich Lags sortieren und verwenden.
Names Default to Here(1);
dt = New Table("Test It", add rows(6000),
New Column("Nr", numeric, continuous,<<SET each="" value=""></SET><BR /> Verwenden Sie für 6000 Zeilen Col Rank () = 3.13 * mit Verzögerungen
t1 - t0 = 18836;
t3 - t2 = 1863;
t5 - t4 = 4161;
Für 1.000.000 Zeilen mit Col Rank () = 2.45 * mit Lags
t1 - t0 = 1521679;
t3 - t2 = 694813;
t5 - t4 = 621142;
* /
Re: Wie analysiert man die numerische Reihenfolge der Wiederholungswerte in Zeilen?Versuchen Sie eine Spaltenformel mit der Col Rank () Funktion mit einer By-Variable Möglicherweise ist JMP 13 oder höher erforderlich, nicht sicher, wann die Unterstützung für By-Variablen in ColRank eingeführt wurde.
Versuchen Sie das folgende Skript. Es sollte dasselbe Ergebnis wie bei der vorherigen Lösung geben. Es kommt jedoch nicht auf die Sortierung an.
Current Data Table() << New Column("Order", Formula(Col Rank(:Nr, :Nr)));
(Noch ein JMP-Benutzer in Schweden)
Re: Wie analysiert man die numerische Reihenfolge der Wiederholungswerte in Zeilen?Da die Spalte Nr in sortierter Reihenfolge ist, kann dies mit einer Spaltenformel erfolgen. Bevor Sie die Formel präsentieren, sollten Sie Hauptmenü> Hilfe> Skriptindex> Funktionen> Zeile suchen oder nach Lag suchen. Ich habe eine Spalte namens Count erstellt und diese Formel hinzugefügt. Standardmäßig hat die erste Zeile eine Zählung von 1. Die zweite Bedingung: Nr == Lag (: Nr, 1) ist die Bedingung. Wenn die aktuelle Zeile der vorherigen Zeile entspricht, nehmen Sie die vorherige Zählung, Lag (: Count, 1), und erhöhen Sie sie. Ansonsten ist der Zähler 1.
If(
Row() == 1, 1,
:Nr == Lag( :Nr, 1 ), Lag( :Count, 1 ) + 1,
1
)
Hinweis JMP Lag funktioniert sowohl für Text als auch für Zahlen. Wenn ich jedoch eine Textspalte hätte, würde ich empfehlen, die Funktion zu ändern
If(
Row() == 1, 1,
Trim( Lowercase( :txtCol ) ) == Trim( Lowercase (Lag( :txtCol, 1 ) ) ) , Lag( :Count, 1 ) + 1,
1
)
Hoffentlich hilft das.