合計値を計算し、その合計値を使用してそれぞれのパーセンテージ値を取得します

Kedar kulkarni

各値のパーセンテージを取得しようとしています。入力:

ShowList = [{
        age: {
            age_55_above: 285737,
            age_25_34: 12217710,
            age_unspecified: 655187,
            age_18_24: 9035930,
            age_45_54: 927554,
            …
        }
        gender: {
            male: 12467636,
            unspecified: 11872,
            female: 17833279
        }
    },
    {
        age: {
            age_55_above: 285237,
            age_25_34: 12227710,
            age_unspecified: 651187,
            age_18_24: 9135930,
            age_45_54: 9227554,
            …
        }
        gender: {
            male: 111467636,
            unspecified: 13872,
            female: 178344279
        }
    }
]
  1. 年齢285737+ 12217710 + 655187 + 9035930 +927554と性別12467636+ 11872 +17833279の合計を追加します。
  2. それぞれの合計検索パーセンテージを取得した後。すなわち(285737 /合計値// 23122118)* 100
  3. 出力は同じjson形式にすることができます:
[{
        age: {
            age_55_above: % val,
            age_25_34:  % val,
            age_unspecified:  % val,
            age_18_24:  % val,
            age_45_54:  % val,
            …
        }
        gender: {
            male:  % val,
            unspecified:  % val,
            female:  % val
        }
    },
    {
        age: {
            age_55_above:  % val,
            age_25_34:  % val,
            age_unspecified:  % val,
            age_18_24:  % val,
            age_45_54:  % val,
            …
        }
        gender: {
            male:  % val,
            unspecified:  % val,
            female:  % val
        }
    }
]

私が試したこと:最初に合計を取得し、次に各値からパーセンテージを取得しようとしています。どんな解決策も歓迎します。

for (var key in this.ShowsList) {
          for (var keyGender in this.ShowsList[key]) {
              total[key] = {};
              for (var keyVal in this.ShowsList[key][keyGender]) {
                total[key] = total[key] || {};
                total[key]["gender"] = total[key]["gender"] || 0;
                total[key]["age"] = total[key]["age"] || 0;
                if(this.ShowsList[key]["gender"][keyVal] != undefined){
                  total[key]["gender"] += this.ShowsList[key]["gender"][keyVal];
                }
                if(this.ShowsList[key]["age"][keyVal] != undefined){
                  total[key]["age"] += this.ShowsList[key]["age"][keyVal];
                }
                Obj[key] = Obj[key] || {};
                Obj[key][keyGender] = Obj[key][keyGender] || {};
                Obj[key][keyGender][keyVal] = Obj[key][keyGender][keyVal] || 0;
                // Logic to calculate percentage

                // Obj[key]["gender"][keyVal] = ((this.ShowsList[key]["gender"][keyVal]/ total[key]["gender"]) * 100);
// Obj[key]["age"][keyVal] = ((this.ShowsList[key]["age"][keyVal]/ total[key]["gender"]) * 100);

              }
          }
        }
Calvin Nunes

さて、ShowList内部オブジェクトは常に同じ構造を持つので、以下のコードを使用できます。(何らかの理由でスケーラビリティが必要な場合、またはプロパティを変更する場合は、Nina Scholzの回答の方が適しています)

まず、ループを開始しShowList、各オブジェクトを取得します。
次に、を使用して、各オブジェクトagegender値のみを含む配列を作成Object.values()ます。これらすべての値を合計し、年齢と性別の合計を取得
する.reduceために使用します。
ここでagegenderオブジェクトの各プロパティをループし、計算を行って%を取得します

let ShowList = [{
        age: {
            age_55_above: 285737,
            age_25_34: 12217710,
            age_unspecified: 655187,
            age_18_24: 9035930,
            age_45_54: 927554            
        },
        gender: {
            male: 12467636,
            unspecified: 11872,
            female: 17833279
        }
    },
    {
        age: {
            age_55_above: 285237,
            age_25_34: 12227710,
            age_unspecified: 651187,
            age_18_24: 9135930,
            age_45_54: 9227554,            
        },
        gender: {
            male: 111467636,
            unspecified: 13872,
            female: 178344279
        }
    }
]

var results = []

for (var i = 0; i < ShowList.length; i++){
  let currentObj = ShowList[i];
  
  let ageValues = Array.from(Object.values(currentObj.age))
  let genderValues = Array.from(Object.values(currentObj.gender))
  
  let totalAges = ageValues.reduce((a,b) => a + b, 0)
  let totalGender = genderValues.reduce((a,b) => a + b, 0)
  
  let newObj = {age: {}, gender: {}}
  
  for (let key in currentObj.age){
    newObj.age[key] = (currentObj.age[key] / totalAges) * 100 + " %"
  }
  
  for (let key in currentObj.gender){
    newObj.gender[key] = (currentObj.gender[key] / totalGender) * 100 + " %"
  }
  
  results.push(newObj)
}

console.log(results)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

それぞれの個別の値のパーセンテージを計算します

分類Dev

1つの列でグループ化し、別の値の列を合計して行をカウントし、Rのそれぞれのパーセンテージを計算します

分類Dev

1つの列でグループ化し、別の値の列を合計して行をカウントし、Rのそれぞれのパーセンテージを計算します

分類Dev

Pythonは辞書で合計値とそのパーセンテージを計算します

分類Dev

それぞれの個別の値のパーセンテージをグループ化して計算します

分類Dev

テキストボックスの数値を4セットの数値で分割し、それぞれが合計を取得し、各グループの各合計の最後の桁をすべて結合します。

分類Dev

一意の値でグループ化し、それぞれの合計を取得します

分類Dev

SQL Serverで計算された合計に基づいて、各行のパーセンテージ値を計算します

分類Dev

ポリゴンをマージしてそれらの値を合計する

分類Dev

パーセンテージ2の値を計算し、算術演算を合計しますmysql

分類Dev

2つの値の間のパーセンテージを計算します(合計の場合)

分類Dev

合計を計算し、その値を乗算します

分類Dev

同じ名前のコンテンツを結合し、バッチスクリプトを使用してそれぞれの値を合計します

分類Dev

それぞれの最新の日付を使用したすべてのアカウントの値の合計

分類Dev

整数を除算してすべての数値を取得し、それらを合計します

分類Dev

合計を計算し、次に行ごとの合計のパーセンテージを計算します

分類Dev

Tensorflowを使用して数値のパーセンテージを計算する

分類Dev

データフレームの値を比較し、それを使用して別の属性を計算します

分類Dev

SQLServer-お金として保存された値を使用して合計のパーセンテージを計算する際の精度が不足しています

分類Dev

forループによって生成された数値から合計を計算します(現在の合計)

分類Dev

累積値を計算するには、パーティション全体の合計を使用します

分類Dev

2つのSQLクエリを使用して可用性のパーセンテージを計算し、それを結果に組み合わせる方法

分類Dev

mysqlクエリ出力の値を使用してパーセンテージを計算します

分類Dev

列の合計を取得し、合計のパーセントを計算するために使用します(mySQL)

分類Dev

OnkeyupのみのJavascriptを使用して特定の列セル値を取得し、その値を合計する方法

分類Dev

それぞれの値の合計を持つキーワードのリストを含む新しいデータフレームを作成します

分類Dev

SQLでDISTINCT値の合計を取得し、それをレコードに表示します

分類Dev

その値とネストされた配列要素の値を使用して配列要素を合計します

分類Dev

それぞれの値の合計でキーワードをリストする新しいデータフレームを作成します

Related 関連記事

  1. 1

    それぞれの個別の値のパーセンテージを計算します

  2. 2

    1つの列でグループ化し、別の値の列を合計して行をカウントし、Rのそれぞれのパーセンテージを計算します

  3. 3

    1つの列でグループ化し、別の値の列を合計して行をカウントし、Rのそれぞれのパーセンテージを計算します

  4. 4

    Pythonは辞書で合計値とそのパーセンテージを計算します

  5. 5

    それぞれの個別の値のパーセンテージをグループ化して計算します

  6. 6

    テキストボックスの数値を4セットの数値で分割し、それぞれが合計を取得し、各グループの各合計の最後の桁をすべて結合します。

  7. 7

    一意の値でグループ化し、それぞれの合計を取得します

  8. 8

    SQL Serverで計算された合計に基づいて、各行のパーセンテージ値を計算します

  9. 9

    ポリゴンをマージしてそれらの値を合計する

  10. 10

    パーセンテージ2の値を計算し、算術演算を合計しますmysql

  11. 11

    2つの値の間のパーセンテージを計算します(合計の場合)

  12. 12

    合計を計算し、その値を乗算します

  13. 13

    同じ名前のコンテンツを結合し、バッチスクリプトを使用してそれぞれの値を合計します

  14. 14

    それぞれの最新の日付を使用したすべてのアカウントの値の合計

  15. 15

    整数を除算してすべての数値を取得し、それらを合計します

  16. 16

    合計を計算し、次に行ごとの合計のパーセンテージを計算します

  17. 17

    Tensorflowを使用して数値のパーセンテージを計算する

  18. 18

    データフレームの値を比較し、それを使用して別の属性を計算します

  19. 19

    SQLServer-お金として保存された値を使用して合計のパーセンテージを計算する際の精度が不足しています

  20. 20

    forループによって生成された数値から合計を計算します(現在の合計)

  21. 21

    累積値を計算するには、パーティション全体の合計を使用します

  22. 22

    2つのSQLクエリを使用して可用性のパーセンテージを計算し、それを結果に組み合わせる方法

  23. 23

    mysqlクエリ出力の値を使用してパーセンテージを計算します

  24. 24

    列の合計を取得し、合計のパーセントを計算するために使用します(mySQL)

  25. 25

    OnkeyupのみのJavascriptを使用して特定の列セル値を取得し、その値を合計する方法

  26. 26

    それぞれの値の合計を持つキーワードのリストを含む新しいデータフレームを作成します

  27. 27

    SQLでDISTINCT値の合計を取得し、それをレコードに表示します

  28. 28

    その値とネストされた配列要素の値を使用して配列要素を合計します

  29. 29

    それぞれの値の合計でキーワードをリストする新しいデータフレームを作成します

ホットタグ

アーカイブ