Zählen Sie das am häufigsten vorkommende Element in einer SpalteIch möchte anhand der Zeilenanzahl in einer JMP-Spalte schnell das am häufigsten vorkommende Element ermitteln. Die eindeutigen Einträge lassen sich leicht ermitteln. Wie kann ich daraus am besten die Anzahl ermitteln?
dt = Current Data Table();
summarize( lotz = by(:LOT));
Automatisierung und SkriptingBetreff: Zählen Sie das am häufigsten vorkommende Element in einer SpalteDabei wird die Möglichkeit eines Gleichstands bei den häufigsten Fällen berücksichtigt:
Names Default To Here( 1 );
dt = Data Table( "Big Class" );
dt << Add Rows( {:name = "BARBARA", :age = 13, :sex = "F", :height = 100, :weight = 79} );
Summarize( namez = By( :name ) );
numberz = Transform Each( {v, i}, namez, Length( Where( dt, :name == v ) ) );
max_num = Max( numberz ); //2
big_name = namez[Where( numberz == max_num )]; //{"BARBARA", "ROBERT"}Betreff: Zählen Sie das am häufigsten vorkommende Element in einer SpalteDie Vertriebsplattform stellt Ihnen einen Modus zur Verfügung.

Es befindet sich unter dem roten Dreieck für den Abschnitt „Zusammenfassende Statistik“. Wählen Sie einfach
Zusammenfassende Statistiken anpassen

und wählen Sie dann die zusätzlichen Statistiken aus, die angezeigt werden sollen

Betreff: Zählen Sie das am häufigsten vorkommende Element in einer SpalteWenn Sie eine Spaltenformel bevorzugen:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
New Column( "N by age",
Formula( Col Number( 1, :age ) )
)
und um den Gewinner zu ermitteln:
New Column( "max N by age",
Formula( Col Number( 1, :age ) == Col Max( Col Number( 1, :age ) ) )
)
Alternativ können Sie „Zusammenfassen“ verwenden:
Summarize( namez = By( :age ), cnt = count(:age) );
oder Tabellen/Zusammenfassung:
Data Table( "Big Class Families" ) << Summary(
Group( :age )
);
Betreff: Zählen Sie das am häufigsten vorkommende Element in einer SpalteDies ist ein gut aussehendes Skript, aber aus irgendeinem Grund gibt es für alles den Wert 5 als Nummer aus.
Danke
Betreff: Zählen Sie das am häufigsten vorkommende Element in einer SpalteDer Vorschlag zum Zusammenfassen ist gut. Er liefert mir zwei getrennte Listen. Wenn ich daraus ein assoziatives Array machen könnte, könnte ich den maximalen „cnt“-Wert verwenden, um den zugehörigen „namez“-Wert zu identifizieren.
Betreff: Zählen Sie das am häufigsten vorkommende Element in einer SpalteIch habe das gemacht und es scheint zu funktionieren.
Summarize( namez = By( :LOT ), cnt = count(:LOT) );
keys = namez;
values = Eval List(cnt);
AA = Associative Array(keys, values);
For( g = 1, g <= N Items( AA ), g++,
If(values[g] == Max(cnt), mainLOT = keys[g]));Betreff: Zählen Sie das am häufigsten vorkommende Element in einer SpalteIm Allgemeinen verwende ich hierfür die Summary Platform (wie ich sie verwende, hängt vom Anwendungsfall ab: Gleichstände, brauche ich die Anzahl, wie sollen fehlende Werte behandelt werden usw.)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt_summary = dt << Summary(
Group(:sex),
Freq("None"),
Weight("None"),
output table name("res"),
Private
);
// Using Loc Max
max_row = Loc Max(dt_summary[0, "N Rows"]);
max_val = dt_summary[max_row, 1];
show(max_val);
// Sorting
dt_summary << Sort(By(:N Rows), Replace Table, Order(Descending));
my_val = dt_summary[1, 1];
show(my_val);
Close(dt_summary, no save);
Es kann auch ausreichen, nur die Modusfunktion zu verwenden
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
val = Mode(dt[0, "sex"]);
Und es gibt noch viele andere Optionen (wie Sie in diesem Thread bereits sehen können).
Betreff: Zählen Sie das am häufigsten vorkommende Element in einer SpalteJarmo
Mächtig! Das funktioniert und schließt nicht numerische Werte ein. Die einzige Verbesserung, die ich brauche, ist, fehlende Daten irgendwie zu ignorieren?
dt = Current Data Table();
val = Mode(dt[0, "process"]);
Betreff: Zählen Sie das am häufigsten vorkommende Element in einer SpalteIch habe diese Optimierung vorgenommen und es scheint, als wäre es mir gelungen.
dt = Current Data Table();
full_proc_rows = dt << get rows where( !Is Missing( :process ) );
proc_val = Mode(dt[full_proc_rows, "process"]);