在我的代码中,我使用d3.est()函数从数据集中删除了重复的行,并附上了输出示例。
现在我的JSON数组中有了唯一的条目,我想对这个数据集执行一些计算,特别是找出每个日期的平均“周期时间”。在此示例中,理想情况下输出应为:
[
{
"key": "2012-03",
"values": [
{
"mean": 16,
}
]
},
{
"key": "2012-06",
"values": [
{
"mean": 10,
}
]
},
{
"key": "2012-07",
"values": [
{
"mean": 8,
}
]
}
]我试着在网上关注了几个例子,但我似乎遗漏了一些明显的东西,有人能帮我吗?
var summaryTable = [
{
"key": "2012-03",
"values": [
{
"key": "AAA-1",
"value": {
"cycletime": 14
}
},
{
"key": "AAA-2",
"value": {
"cycletime": 18
}
}
]
},
{
"key": "2012-06",
"values": [
{
"key": "AAA-3",
"value": {
"cycletime": 8
}
},
{
"key": "AAA-4",
"value": {
"cycletime": 12
}
}
]
},
{
"key": "2012-07",
"values": [
{
"key": "AAA-5",
"value": {
"cycletime": 15
}
},
{
"key": "AAA-5",
"value": {
"cycletime": 1
}
},
{
"key": "AAA-6",
"value": {
"cycletime": 8
}
}
]
}
]
var d3Table = d3.nest()
.key(function(d) { return d['key']; })
.rollup(function(d) {
return {
"medianCycleTime": d3.mean(d, d3.values(d['values']['value'])),
};
})
.entries(summaryTable);发布于 2018-07-25 21:06:29
在仔细检查了您的d3.nest数据之后,我找到了要在rollup中使用的函数。
rollup的参数d是一个包含具有该键的所有对象的数组。您必须首先对其进行索引,否则将得到Array类的values()方法。
var d3Table = d3.nest()
.key(function(d) { return d['key']; })
.rollup(function(d) {
return {
"medianCycleTime": d3.mean(d[0]['values'], d => d.value.cycletime ),
};
})
.entries(summaryTable);https://stackoverflow.com/questions/51516078
复制相似问题