Я пытаюсь получить правильную среднюю агрегацию из таблицы реакций. На данный момент, когда вы делаете среднее по агрегации, оно делает среднее по подстрокам. Если у вас есть только 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.