Durchlaufen Sie die Zeilen einer Spalte, um die Gesamtzahl zu ermittelnEs wird versucht, die Anzahl der Zählungen des aktuellen Eintrags in einer Spalte zu ermitteln. Die folgende Funktion funktioniert, scheint aber langsam zu sein. Irgendwelche Vorschläge zur Verbesserung der Skriptlaufzeit?
JMP14, JMP16
Mein Vorschlag: Ich denke, dass ich zunächst ein assoziatives Array konstruiere, indem ich die Einträge aus :ColName als „Schlüssel“ hinzufüge und den Wert (Value++) erhöhe, wenn ein doppelter Eintrag, d wäre ein besserer Weg. Dann können Sie einfach die Zeilen durchlaufen, um die Anzahl der „Werte“ dafür zu ermitteln.
Automatisierung und SkripterstellungBetreff: Durchlaufen der Zeilen einer Spalte, um die Gesamtzahl zu ermittelnGibt es einen bestimmten Grund, warum Sie die Zeilen durchlaufen möchten? Sie könnten höchstwahrscheinlich Tabulate oder Summary Table verwenden, um eine ähnliche Aufgabe auszuführen

Zusammenfassung + Stapeltabelle

Betreff: Durchlaufen der Zeilen einer Spalte, um die Gesamtzahl zu ermittelnHier sind ein paar Möglichkeiten, das zu tun, was Sie meiner Meinung nach wollen.
Names Default To Here( 1 );
dt = Current Data Table();
Summarize( dt, items = by( :colName ) );
countOfUniqueValues = N Items( items );
// or
countOfUniqueValues = N Items( Associative Array( :colName ) << get keys );
Betreff: Durchlaufen der Zeilen einer Spalte, um die Gesamtzahl zu ermittelnIch fasse (dt_summary) die größere Datentabelle (dt) zusammen, die mir die Anzahl der Zeilen für jeden einzelnen Eintrag in der Spalte angibt: ColName.
dt_summary = dt << Summary( Group( :ColName ), Freq( "None" ), Weight( "None" ) );
Jetzt möchte ich die ursprünglichen Tabellenzeilen (dt) durchlaufen und die Anzahl der Zeilen aus der Übersichtstabelle für die aktuelle Zeile abrufen, um zu überprüfen, ob sie über 10 liegt (Vorkommen).
Übersichtstabelle (Gruppierung nach Höhe):

Nehmen wir also an, ich befinde mich in der ersten Zeile, die Höhe beträgt 59 und die Vorkommen sind 2. Ich möchte diese Informationen in der aktuellen Datentabelle (dt) in einer neuen Spalte (height_qty) auffüllen.
Betreff: Durchlaufen der Zeilen einer Spalte, um die Gesamtzahl zu ermittelnDie einfachste Lösung besteht darin, die Übersichtstabelle mithilfe von einfach mit der Originaltabelle zusammenzuführen
Tabellen => Aktualisieren
Plattform
names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
dt_summary = dt << Summary( invisible, Group( :height ), Freq( "None" ), Weight( "None" ) );
dt_summary:N Rows << set name("height_qty");
dt << Update(
With( dt_summary ),
Match Columns( :height = :height )
);
close( dt_summary, nosave );Betreff: Durchlaufen der Zeilen einer Spalte, um die Gesamtzahl zu ermittelnIch bin wirklich dankbar für deine schnelle Hilfe, Jim. Es funktionierte wie erwartet und die Laufzeit reduzierte sich von fast einer Minute auf ~2 Sekunden.