Как изменить расчет агрегации в response-table.js - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь получить правильную среднюю агрегацию из таблицы реакций. На данный момент, когда вы делаете среднее по агрегации, оно делает среднее по подстрокам. Если у вас есть только 1 уровень агрегации, нет проблем. Если у вас есть несколько уровней, это приносит проблемы. Это делает среднее из средних значений подстрок. Это не правильно.

Я пытался агрегировать это по-другому, но я не знаю, где взять значения для всех подстрок во всей агрегации.

const data = [
  {
    region: "South",
    country: "Spain",
    item: "item1",
    item_type: "type1",
    value: 140
  },
  {
    region: "South",
    country: "Spain",
    item: "item2",
    item_type: "type2",
    value: 240
  },
  {
    region: "South",
    country: "Spain",
    item: "item3",
    item_type: "type1",
    value: 140
  },
  {
    region: "South",
    country: "Spain",
    item: "item4",
    item_type: "type2",
    value: 240
  },
  {
    region: "South",
    country: "France",
    item: "item5",
    item_type: "type1",
    value: 140
  },
  {
    region: "South",
    country: "France",
    item: "item6",
    item_type: "type2",
    value: 240
  },
  {
    region: "North",
    country: "UK",
    item: "item7",
    item_type: "type1",
    value: 140
  },
  {
    region: "North",
    country: "UK",
    item: "item8",
    item_type: "type1",
    value: 240
  },
  {
    region: "North",
    country: "UK",
    item: "item9",
    item_type: "type1",
    value: 10
  },
  {
    region: "North",
    country: "UK",
    item: "item10",
    item_type: "type2",
    value: 30
  },
  {
    region: "North",
    country: "UK",
    item: "item11",
    item_type: "type2",
    value: 450
  }
];

Это мои столбцы:

const columns = [
        {
          Header: "region",
          accessor: "region"
        },
        {
          Header: "country",
          accessor: "country"
        },
        {
          Header: "item",
          accessor: "item"
        },

        {
          Header: "item_type",
          accessor: "item_type"
        },
        {
          Header: "value",
          accessor: "value"
        }
      ];

А это мой компонент:

<ReactTable data={data} columns={columns} pivotBy={["region", "country", "item_type"]} />

В этом примере среднее значение для Испании равно 145, среднее значение для Франции равно 505. Если вы сделаете среднее значение для всех строк, вы получите 265. И, тем не менее, в таблице это среднее значение по Франции. и Испания, поэтому 145 + 505/2. Это не правильно. Это должно быть 1590/6.

1 Ответ

0 голосов
/ 29 мая 2019

Я тоже столкнулся с этой проблемой и не нашел решения, включающего встроенные потоки агрегации в таблице реакции. Закончилось раздельное выполнение агрегации и отображение агрегированных данных в таблице реакции.

...