平均、中央値、最頻値を求めたい | 数値操作 | JavaScript 目的別リファレンス

現在作成中です。今後加筆修正してまいります。
スポンサーリンク

このプログラムでは、JavaScriptを使って配列内の平均、中央値、最頻値を計算する方法を紹介します。

スポンサーリンク

平均、中央値、最頻値を求めるプログラム

以下のコードでは、配列[1, 2, 2, 3, 4, 4, 4, 5, 6]の平均、中央値、最頻値を計算し、その結果を表示しています。

HTMLとJavaScriptコード

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>平均、中央値、最頻値を求める方法</title>
    <script>
        window.onload = function() {
            // 配列の平均値を計算する関数
            function calculateMean(arr) {
                const sum = arr.reduce((acc, num) => acc + num, 0); // 配列の合計を求める
                return sum / arr.length; // 合計を要素数で割って平均値を求める
            }

            // 配列の中央値を計算する関数
            function calculateMedian(arr) {
                const sortedArr = arr.slice().sort((a, b) => a - b); // 配列を昇順にソート
                const middleIndex = Math.floor(sortedArr.length / 2);

                // 要素数が奇数か偶数かで中央値を計算
                return sortedArr.length % 2 === 0
                    ? (sortedArr[middleIndex - 1] + sortedArr[middleIndex]) / 2
                    : sortedArr[middleIndex];
            }

            // 配列の最頻値を計算する関数
            function calculateMode(arr) {
                const frequencyMap = {};
                let maxFrequency = 0;
                let mode = [];

                arr.forEach(num => {
                    frequencyMap[num] = (frequencyMap[num] || 0) + 1; // 出現回数を記録
                    if (frequencyMap[num] > maxFrequency) {
                        maxFrequency = frequencyMap[num];
                        mode = [num]; // 最頻値を更新
                    } else if (frequencyMap[num] === maxFrequency) {
                        mode.push(num); // 複数の最頻値がある場合
                    }
                });

                return mode;
            }

            // テスト用の配列
            const numbers = [1, 2, 2, 3, 4, 4, 4, 5, 6];

            // 平均、中央値、最頻値を計算
            const mean = calculateMean(numbers);
            const median = calculateMedian(numbers);
            const mode = calculateMode(numbers);

            // 結果をHTMLに表示
            document.getElementById('meanValue').textContent = `平均: ${mean}`;
            document.getElementById('medianValue').textContent = `中央値: ${median}`;
            document.getElementById('modeValue').textContent = `最頻値: ${mode.join(', ')}`;
        }
    </script>
</head>
<body>

    <h1>平均、中央値、最頻値を求める方法</h1>

    <div id="meanValue"></div>
    <div id="medianValue"></div>
    <div id="modeValue"></div>

</body>
</html>

プログラムの解説

このプログラムでは、配列の平均、中央値、最頻値をそれぞれ計算しています。

以下は使用したメソッドの注意点です。

  • reduce()は、配列の全要素に対して累積計算を行うため、配列の合計を求めるのに便利です。初期値を0に設定することで正しく動作します。
  • sort()は配列の要素を昇順に並べ替えますが、数値のソートではコールバック関数で(a, b) => a - bを使用しないと、数値が文字列としてソートされてしまう点に注意が必要です。
  • 最頻値を計算する際には、オブジェクトを使用して各要素の出現回数を記録し、それに基づいて最も頻繁に現れる値を特定します。最頻値が複数ある場合、そのすべてが返されます。

Arrayオブジェクト メソッドの機能一覧

Arrayオブジェクト メソッドの機能一覧 | JavaScript リファレンス
JavaScriptのArrayオブジェクトは、リストやコレクションの管理に使用されるグローバルオブジェクトです。以下に、Arrayオブジェクトのメソッドをインスタンスメソッドと静的メソッドに分け、アルファベット順にまとめています。 Arrayオブジェクトのインスタンスメソッド メソッド名 説明と注意点 Array.p...

Mathオブジェクト メソッドの機能一覧

Mathオブジェクト メソッドの機能一覧 | JavaScript リファレンス
JavaScriptのMathオブジェクトは、数学的な定数や関数を提供するオブジェクトで、静的メソッドのみを持ちます。以下に、Mathオブジェクトのメソッドをアルファベット順にまとめています。 Mathオブジェクトの静的メソッド メソッド名 説明と注意点 Math.abs(x) 数値の絶対値を返します。 注意点: 引数...