計算列中最常出現的項我想透過 JMP 列中的行數輕鬆識別最常出現的項目。我可以輕鬆確定唯一的條目,如何從那裡獲得最佳計數?
dt = Current Data Table();
summarize( lotz = by(:LOT));
自動化和腳本回覆:計算列中最常出現的項目這考慮到了出現最常見情況的可能性:
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"}回覆:計算列中最常出現的項目分發平台將為您提供一種模式。

它位於“摘要統計段落”的紅色三角形下方。只需選擇
自訂匯總統計數據

然後選擇您想要顯示的其他統計數據

回覆:計算列中最常出現的項目如果您喜歡列公式:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
New Column( "N by age",
Formula( Col Number( 1, :age ) )
)
並確定獲勝者:
New Column( "max N by age",
Formula( Col Number( 1, :age ) == Col Max( Col Number( 1, :age ) ) )
)
或者,您可以使用 Summarize:
Summarize( namez = By( :age ), cnt = count(:age) );
或表格/摘要:
Data Table( "Big Class Families" ) << Summary(
Group( :age )
);
回覆:計算列中最常出現的項目這是一個好看的腳本,但由於某種原因,它將所有內容的 numberz 設為 5。
謝謝
回覆:計算列中最常出現的項目總結建議很好。它給了我兩個分離的清單。如果我能以某種方式將其變成關聯數組,我可以使用最大“cnt”值來識別關聯的“namez”值。
回覆:計算列中最常出現的項目我這樣做了並且似乎有效。
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]));回覆:計算列中最常出現的項目我通常使用總結平台來實現這一點(如何使用它取決於用例:關係、是否需要計數、如何處理缺失值等等)
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);
僅使用模式函數可能就足夠了
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
val = Mode(dt[0, "sex"]);
還有很多其他選項(就像您已經在本帖中看到的那樣)。
回覆:計算列中最常出現的項目賈爾莫
厲害!這可以起到作用,並且它包含非數字值。我唯一需要的改進就是讓它以某種方式忽略遺失的資料?
dt = Current Data Table();
val = Mode(dt[0, "process"]);
回覆:計算列中最常出現的項目我做了這個調整並且似乎成功了。
dt = Current Data Table();
full_proc_rows = dt << get rows where( !Is Missing( :process ) );
proc_val = Mode(dt[full_proc_rows, "process"]);