統計モードを見つけるにはどうすればいいですか? 質問する

統計モードを見つけるにはどうすればいいですか? 質問する

R では、mean()と はmedian()期待どおりの動作をする標準関数です。mode()は、引数内で最も多く出現する値ではなく、オブジェクトの内部ストレージ モードを示します。しかし、ベクトル (またはリスト) の統計モードを実装する標準ライブラリ関数はあるのでしょうか?

ベストアンサー1

数値データと文字/因子データの両方に機能するもう 1 つのソリューション:

Mode <- function(x) {
  ux <- unique(x)
  ux[which.max(tabulate(match(x, ux)))]
}

私のちっぽけな小さなマシンでは、約 0.5 秒で 10M 整数ベクトルのモードを生成して見つけることができます。

データ セットに複数のモードがある可能性がある場合、上記のソリューションは と同じアプローチを採用しwhich.max、モード セットの最初の値を返します。すべてのモードを返すには、次のバリアントを使用します (コメントの @digEmAll より)。

Modes <- function(x) {
  ux <- unique(x)
  tab <- tabulate(match(x, ux))
  ux[tab == max(tab)]
}

おすすめ記事