Holen Sie sich einzigartige GegenständeWas hat Sie zu dieser Wunschliste inspiriert?
Ich muss wiederholt eine Liste eindeutiger Elemente aus einer Spalte oder Liste abrufen und es wäre schön, eine integrierte JMP-Funktion und/oder -Nachricht zu haben, die dies vereinfacht.
Welche Verbesserung würden Sie gerne sehen?
Mein Vorschlag ist zweifacher Natur:
- Erstellen Sie eine neue Nachricht „<< eindeutige Elemente abrufen“, die an eine Datentabellenspalte oder ein String Col Box/String Col Edit Box übergeben werden kann, die eine Liste der eindeutigen Werte in diesem Objekt zurückgibt
- Erstellen Sie eine neue JSL-Funktion „Get Unique Items(list)“, die dasselbe für eine Liste tun würde
Warum ist diese Idee wichtig?
Es geht hauptsächlich um die Effizienz der Codierung und die Lesbarkeit von JSL-Code. Der derzeit effizienteste Weg, die Liste eindeutiger Elemente aus einer Liste abzurufen, ist die Verwendung von
list={"a", "b", "a", "c", "a", "d"};
unique_items=(Associative Array(list) << get keys);
die Alternative wäre etwas einfacher und lesbarer
unique_items = Get Unique Items(list);
Ähnlich verhält es sich beim Abrufen einer Liste eindeutiger Elemente aus einer Datentabelle.
// common way to do this now
unique_items=Associative Array(
<COLUMN reference="">
<< get items) << get keys; // proposed shorter and more readable way unique_items =
<COLUMN reference="">
<< get unique items;
</COLUMN>
</COLUMN>
Automatisierung und SkriptingBetreff: Erhalten Sie einzigartige Gegenständees wird sein:
col N unique (column)
mit der zusätzlichen Möglichkeit, mehrere Zähler über groupBy-Argumente zu erhalten:
Spalte N Kategorien – und alle anderen …
Super cool: die Möglichkeit, die Funktionalität durch Scoping zu erweitern
Spalten transformieren – so komfortabel wie zusammenfassende Statistiken?
Betreff: Einzigartige Gegenstände erhalten – Status geändert in: Ja, bleiben Sie dran!Ja, wie @hogi sagte, wird diese Funktion in JMP 19 verfügbar sein.
col N unique (column)
Betreff: Erhalten Sie einzigartige GegenständeUnd betreffend
unique_items = Get Unique Items(list);
wird es auch kommen?
Betreff: Erhalten Sie einzigartige GegenständeIch weiß nicht, ob das hilfreich ist, aber so mache ich es:
- Wählen Sie die Spalten aus, aus denen Sie die eindeutigen Elemente abrufen möchten
- Zeilen -> Zeilenauswahl -> Doppelte Zeilen auswählen
- Zeilen -> Zeilenauswahl -> Zeilenauswahl umkehren
- Kopie
Die Systemzwischenablage enthält nun eine eindeutige Liste von Elementen in dieser Spalte. Tipp: Legen Sie Tastaturkürzel für die Elemente 2 und 3 fest, und Sie erhalten Ihre Liste in wenigen Sekunden.
Betreff: Erhalten Sie einzigartige GegenständeGuter Trick!
Die Verwendung assoziativer Arrays (wie im Originalbeitrag beschrieben) ist eine weitere Problemumgehung.
Eine andere Möglichkeit ist die Verwendung von Summarize(uniqueEntries=by(mycol)) .
Alle diese Methoden funktionieren. Noch besser:
Wenn Sie es wissen, erinnern Sie sich daran und erzählen Sie Ihren Kollegen davon – Sie werden ein Erfolgserlebnis haben!
Es ist so lohnend!
Aber nachdem ich dem 101. Kollegen das Geheimnis verraten habe …
Sie fragen sich, ob so etwas wie das hier:
unique_items = Get Unique Items(list);
column << get Unique Items()
könnte das Leben einfacher machen.
... vielleicht als Wrapper für den Associative Array-Ansatz?
Betreff: Erhalten Sie einzigartige Gegenstände@Sarah-Sylvestre , könntest du bitte den Status des Wunsches anpassen?
Entschuldigung, „mein Fehler“.
col N unique (column)
ist super hilfreich – aber nicht das, was @MathStatChem in seinem Wunsch vorgeschlagen hat.
Betreff: Einzigartige Gegenstände erhalten – Status geändert in: BestätigtBetreff: Erhalten Sie einzigartige GegenständeOpen( "$SAMPLE_DATA/Big Class Families.jmp" );
show(set unique(:name << get values());
Row() = 1;
Show( Set Unique( :sports ) );

Betreff: Erhalten Sie einzigartige GegenständeDas bietet eine Teillösung. Mir gefällt der Funktionsname allerdings nicht besonders gut. „Set“ wird in JSL hauptsächlich zum Setzen von Werten oder Eigenschaften verwendet, daher impliziert „Set Unique“, dass etwas „gesetzt“ wird. Alle „Set“-Listenfunktionen (Set Unique, Set Union, Set Difference, Set Intersection) haben dieses Problem. Ich würde mir eine umgekehrte Reihenfolge des Funktionsnamens wünschen (also Unique Set, Union Set, Difference Set, Intersection Set).
Set Unique( ) benötigt noch etwas zusätzliches JSL, um das zu tun, was ich tun wollte. Für Tabellenspalten müssen Sie entweder die einzelnen Zeilen auswählen (durch Indizierung oder durch Übergeben von << get values an die Spalte innerhalb der Funktion (Set Unique(:col[a::b]) oder Set Unique(:col << get values)), und auch für Spaltenfelder müssen Sie weiterhin eine Get-Nachricht verwenden.
Aber es ist eine nette Ergänzung zur JSL-Funktionsliste.
Betreff: Erhalten Sie einzigartige GegenständeStimmt, als ich es im Skriptindex gefunden habe, wollte ich einen Screenshot machen und alle neuen Satz -Funktionen mit meinen Kollegen teilen – hm …

Man könnte eine benutzerdefinierte Funktion erstellen und sie über erhalten Sie eindeutig () aufrufen ...